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/