System.Web.HttpContext.Current.User.Identity.Name против System.Environment.UserName в ASP.NET - PullRequest
19 голосов
/ 13 января 2012

В чем разница между System.Web.HttpContext.Current.User.Identity.Name и System.Environment.UserName в контексте проекта веб-приложения ASP.Net?

Вот код того, что я пытаюсь сделать:

Database myDB = DatabaseFactory.CreateDatabase();
bool IsAuthUser = myDB.ExecuteScalar("procIsAuthorizedUser", System.Environment.UserName);

Если они функционально идентичны, что лучше с точки зрения производительности?

Это веб-приложение на C # 4.0 / ASP.Net, которое увидит умеренное использование внутри организации. Спасибо за ответы.

Ответы [ 2 ]

34 голосов
/ 13 января 2012

Описание

System.Web.HttpContext.Current.User.Identity.Name

Получает или задает информацию о безопасности для текущего HTTP-запроса. (Имя зарегистрированного пользователя на вашем сайте)

System.Environment.UserName

Получает имя пользователя, который в данный момент вошел в операционную систему Windows.

Дополнительная информация

13 голосов
/ 13 января 2012

System.Environment.UserName возвращает идентификатор, под которым работает пул приложений, в котором размещено ваше веб-приложение. Если вы используете аутентификацию и олицетворение Windows, то это будет фактическое имя пользователя, однако во всех случаях вам лучше использовать информацию, предоставленную контекстом HTTP. В любом случае производительность не падает.

...