Environment.UserName возвращает имя пула приложений вместо имени пользователя

Следующая строка

Environment.UserName

В режиме отладки в visual studio возвращает личность пользователя так, как мне нужно.

Затем, когда я настраиваю свой сайт в IIS и запускаю код, та же строка возвращает имя пула приложений, который использует сайт.

Как я могу заставить его по-прежнему возвращать имя пользователя?

3 ответа

Решение

Попробуйте что-то вроде этого:

if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
   string username = System.Web.HttpContext.Current.User.Identity.Name;
}

Важное примечание. Необходимо настроить IIS для включения встроенной безопасности и отключения анонимного входа.

Обратите внимание, что Environment.Username возвращает имя пользователя в текущей теме.

Попробуйте использовать

Request.ServerVariables["LOGON_USER"]

Он вернется DOMAIN\USERNAME, Затем вы можете разделить его и т. Д.

Это сработало для меня. Используйте Environment.GetEnvironmentVariable("USERNAME") для текущего имени пользователя.

Ссылка: https://www.c-sharpcorner.com/uploadfile/puranindia/the-environment-class-in-C-Sharp/

В IIS для вашего приложения, пожалуйста. Включить олицетворение ASP.NET

Другие вопросы по тегам