2010-04-27 7 views

risposta

18
System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString() 
+3

+1, ma in realtà non avresti bisogno di chiamare 'ToString()' come 'Name' è già di tipo string. –

+0

@ 0xA3: buon punto - penso di essermi un po 'trascinato con me stesso :-) – codingbadger

10

È possibile utilizzare la proprietà Environment.UserDomainName per recuperare il dominio e Environment.UserName per recuperare il nome utente:

Dim domainAndUserName As String _ 
    = Environment.UserDomainName & "\\" & Environment.UserName 
+2

errato. Environment.UserDomainName contiene solo il dominio, non il nome utente. –

+0

@CERIQ: Mi dispiace, ho letto male i documenti e corretto la mia risposta. Strano che abbia ancora ricevuto i voti ... –

+1

Hai uno o più backslash per VB.NET –

1

se si utilizza ASP.NET è possibile utilizzare

HttpContext.Current.User.Identity.Name; 
1

WindowsIdentity.GetCurrent().Name

2

Environment.UserDomainName contai ns il nome dominio/computer a cui è unito il tuo account. Environment.UserName contiene solo il nome utente. Per ottenere il risultato desiderato, è necessario conciliare le variabili (Environment.UserDomainName & "\\" & Environment.UserName). Questo funziona bene solo in un contesto locale, tuttavia, se si utilizza questo codice in un sito Web, verrà visualizzato il nome dell'account in cui viene eseguito il pool di applicazioni. In asp.net, utilizzare invece HttpContext.Current.User.Identity.Name.

+0

Prima di unirti a nome di dominio e nome utente, controlla prima se il nome di dominio non è vuoto in caso di utenti locali. – Alexander