(Ein anderes Verhalten wäre wohl den aktuell benutzte Windows-User zu verwenden. Ich schätze das sollte recht einfach hinzukriegen sein, also konzentriere ich mich mal auf den komplizierteren Fall)
Ist ja ohnehin der Fall. Eben nur ohne explizite Abfrage in dem Fall.
Ich hab mal kurz gegoogelt, da fliegen einem die Begriffe "Active Directory", "Kerberos", "LDAP" etc. nur so um die Ohren - hab davon leider keinen Schimmer davon.
LDAP ist eine Untermenge der seit Windows 2000 (Server) unterstützten ADS (Active Directory Services).
Stell dir das Active Directory als eine Datenbank mit diversen angeschlossenen externen Elementen (Computer, Code) vor. Du kannst dort auch Daten speichern und bspw. über Zugehörigkeit zu einer OU (Organizational
Unit) Regeln festlegen. Und das ist definitiv jeglicher selbstgebastelten Lösung vorzuziehen,
wenn ADS/LDAP im Zielnetzwerk benutzt wird. Andere Verzeichnisdienste ala Novell bieten sicher auch Möglichkeiten ... aber die kenne ich nicht gut genug.
Zu Kerberos habe ich keine Ahnung. Habe ich noch nie richtig verstanden.
Ist das ein gangbarer Weg oder ist das aus irgendeinem Grund BÖSE? Und kann es sein, dass ein User seinen Login-Namen ändert so dass der User plötzlich für meine App wie ein neuer User aussieht?
Nur wenn du nach dem Namen gehst. Du solltest entweder die SID oder die RID (letzte Ziffernfolge in einer SID) nehmen.
Und zu guter Letzt: Ich schätze Benutzer werden in Gruppen organisiert. Man müsst also bei der Authentifizierung abfragen können ob der Benutzer xxx mit Passwort yyy Mitglied der Gruppe zzz ist. Nur: Wie das alles?
Geht sowohl mit ADS/LDAP als auch mit normalen Windowsmitteln (NT-Plattform).
Kann man ein "normales" WinXP prof. zu einem Domänenkontroller machen (ich schätze sowas brauch ich als Server, oder?)
Für ADS braucht's eine Serverversion. Für nur LDAP gibt es verschiedene andere Lösungen (inklusive Linux).
Für XP gab es eine Art abgespeckten Verzeichnisdienst von MS, der aber im Prinzip mit ADS nicht wirklich vergleichbar ist, sondern eher mit LDAP.