Wie bekomme ich den Namen des aktuellen Windows-Benutzers in Benutzername @ Domain-Format?

8

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.

    
Tony Vitabile 28.08.2012, 19:54
quelle

6 Antworten

3

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.

    
Tony Vitabile 11.09.2012, 13:58
quelle
9

So etwas sollte funktionieren ...

%Vor%     
Kevin 28.08.2012 20:13
quelle
3
%Vor%     
Aghilas Yakoub 28.08.2012 20:11
quelle
3

Sie können den Namen mit \ als Trennzeichen teilen und dann die Reihenfolge wie folgt umkehren:

%Vor%

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.

    
Sam 28.08.2012 20:11
quelle
2

Verwenden Sie

%Vor%

Dies gibt den UPN des aktuellen Benutzers zurück. Erfordert einen Verweis auf System.DirectoryServices.AccountManagement.

    
Simon Giles 23.09.2015 16:28
quelle
0

Etwas in dieser Richtung.

%Vor%     
Evangelos Skianis 28.08.2012 20:16
quelle