Ich weiß, dass die folgende Funktion den aktuellen Windows-Benutzernamen im Format Domäne \ Benutzername zurückgibt.
%Vor% Aber wie erhalte ich den Benutzernamen in username@domain
format?
BEARBEITEN:
Ich reagiere in dieser Bearbeitung, da jeder, der geantwortet hat, die gleiche Grundidee hat.
Nach dem, was mir zu verstehen gegeben wurde, ist es nicht sicher oder ratsam, den Namen aus domain\username
format zu parsen und ihn als username@domain
zu konstruieren. Ich glaube, das ist so, weil es keine Garantie gibt, dass die beiden Domain-Namen in den verschiedenen Formaten gleich sind. Zum Beispiel basiert in der Firma, in der ich arbeite, der domain
-Teil des domain\username
-Formats auf deparment, aber in username@domain
ist es der Firmenname. Es ist die Art von Sache, die eine DNS-Suche erfordert.
Ich hatte gehofft, dass es eine API gibt, die diese DNS-Suche durchgeführt hat. Ich denke, ich hätte diese Informationen in meine ursprüngliche Frage einfügen sollen. Entschuldigung.
Der gesamte Code, der den Namen in Domain\user name
format übernimmt und analysiert, funktioniert nicht in allen Situationen. Die Antwort ist, dass Sie Anrufe an Active Directory tätigen müssen, um den Benutzerprinzipalnamen zu erhalten. Es stellt sich heraus, dass ich mich nicht darauf verlassen kann, dass Active Directory auf dem Desktop installiert wird, da viele Polizeibehörden das Verzeichnis nicht auf ihren Laptops installieren, falls es gestohlen wird, während sich ein Polizist nicht im Auto befindet. (Sprechen Sie über Mutsy, stehlen einen Computer aus einem Polizeifahrzeug!)
Wir haben eine eigene Lösung für unsere Situation gefunden. Wir speichern die Benutzernamen in unserer Datenbank im Format Domain\user name
. Wenn das Programm gestartet wird, überprüft es, ob der aktuelle Windows-Benutzername (im selben Format) in der Datenbank vorhanden ist. Wenn dies der Fall ist, verwendet das Programm diesen Benutzer als aktuellen Benutzer und wird ausgeführt. Wenn der aktuelle Windows-Benutzer nicht in unserer Datenbank ist, greift das Programm auf unseren vorherigen Code zurück.
Auf diese Weise kann sich der Benutzer unter Verwendung eines beliebigen Formats für seinen Benutzernamen bei dem Computer anmelden, und er authentifiziert sich mit Windows. Unser Programm erhält immer den Benutzernamen im selben Format und überprüft immer den Benutzernamen in diesem Format. Windows authentifiziert den Benutzer und nicht uns.
Sie können den Namen mit \
als Trennzeichen teilen und dann die Reihenfolge wie folgt umkehren:
Es ist wichtig zu beachten, dass ein doppelter Backslash \
erforderlich ist, da ein Backslash ein Sonderzeichen ist. Wir fügen den zweiten umgekehrten Schrägstrich im obigen Beispiel hinzu, um das Sonderzeichen zu umgehen und es als reguläres Zeichen zu verwenden.
Verwenden Sie
%Vor%Dies gibt den UPN des aktuellen Benutzers zurück. Erfordert einen Verweis auf System.DirectoryServices.AccountManagement.
Tags und Links c# security windows active-directory windows-identity