2010-04-27 4 views

ответ

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

+1, но на самом деле вам не нужно было бы вызывать 'ToString()', поскольку 'Name' уже имеет строку типа. –

+0

@ 0xA3: Хорошая точка - думаю, я немного увлекся собой :-) – codingbadger

10

Вы можете использовать Environment.UserDomainName свойство, чтобы получить домен и Environment.UserName для получения имени пользователя:

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

Неверный. Environment.UserDomainName содержит только домен, а не имя пользователя. –

+0

@CERIQ: Извините, я неправильно прочитал документы и исправил свой ответ. Странно, что он все еще получил upvotes ... –

+1

У вас слишком много обратных косых черт для VB.NET –

1

если вы используете ASP.NET вы можете использовать

HttpContext.Current.User.Identity.Name; 
2

Environment.UserDomainName contai ns имя домена/компьютера, к которому подключена ваша учетная запись. Environment.UserName содержит только имя пользователя. Чтобы получить результат, вам нужно соединить переменные (Environment.UserDomainName & "\\" & Environment.UserName). Это работает только в локальном контексте, хотя, если вы используете этот код на веб-сайте, вы получите имя учетной записи, в которой работает ваш пул приложений. В asp.net вместо этого используйте HttpContext.Current.User.Identity.Name.

+0

Прежде чем присоединиться к доменному имени и имени пользователя, сначала проверьте, не является ли доменное имя пустым в случае локальных пользователей. – Alexander