2012-06-04 13 views

Respuesta

39

Simplemente,

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

O

string Name = System.Environment.UserName 

O

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

O

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

WOR ks :)

+5

Y ninguno de los implicados AD que es totalmente inútil aquí de todos modos (no rastrea quién es el usuario actual - después de iniciar sesión AD realmente no se pide demasiado durante una sesión). – TomTom

+5

Tengo un sitio web y estoy tratando de obtener el nombre de usuario registrado para Windows y ninguno de los anteriores me da eso:/ – SearchForKnowledge

+2

Muchas gracias. Estaba buscando todo el tiempo. –

25

Si estás en .NET 3.5 y arriba, se pueden utilizar:

// 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" 
}  

El nuevo S.DS.AM hace que sea muy fácil de jugar con usuarios y grupos de AD!

Referencias:

+2

es esto funciona en el entorno de servidor de cliente – Sunil

+3

@ user1306094: esto funciona en cualquier entorno donde tenga Active Directory en su lugar. –

+0

Hola, está trabajando dentro del dominio. Cómo hacer que funcione en un servidor diferente o fuera del dominio – Sunil

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

Esto también está trabajando para mí! Gracias

Cuestiones relacionadas