2012-06-04 10 views

Antwort

39

einfach,

string Name = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name; 

ODER

string Name = System.Environment.UserName 

ODER

string Name = Environment.GetEnvironmentVariable("USERNAME"); 

ODER

string Name = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

wor ks :)

+5

Und keiner der involvieren AD, die hier sowieso völlig nutzlos ist (es verfolgt nicht, wer der aktuelle Benutzer ist - nach Login AD wird nicht wirklich zu viel während einer Sitzung gefragt). – TomTom

+5

Ich habe eine Website und ich versuche, den Benutzernamen des angemeldeten Benutzers zu Windows und keiner der oben genannten gibt mir das:/ – SearchForKnowledge

+2

Vielen Dank. Ich habe die ganze Zeit gesucht. –

25

Wenn Sie auf .NET 3.5 und höher, können Sie:

// set up domain context 
PrincipalContext ctx = new PrincipalContext(ContextType.Domain); 

// find current user 
UserPrincipal user = UserPrincipal.Current; 

if(user != null) 
{ 
    string loginName = user.SamAccountName; // or whatever you mean by "login name" 
}  

Die neue S.DS.AM es wirklich einfach macht mit Benutzern und Gruppen in AD zu spielen, um!

Referenzen:

+2

ist dies in Client-Server-Umgebung funktioniert – Sunil

+3

@ user1306094: das funktioniert in jeder Umgebung, in der Sie Active Directory vorhanden haben. –

+0

Hallo, ich arbeite in der Domain. Wie man es in einem anderen Server oder außerhalb der Domäne funktioniert – Sunil

1
System.DirectoryServices.AccountManagement.UserPrincipal.Current.Name 

Dies gilt auch für mich funktioniert! Danke

Verwandte Themen