Я работаю над размещенным приложением ASP.Net с проверкой подлинности Windows, и мне нужно получить имя пользователя для различных задач персонализации. Каталог на хост-машине установлен, чтобы иметь проверку подлинности Windows и файл web.config
также имеет: -Пользователи, неразличимые в Hosted ASP.Net Application
<authentication mode="Windows">
</authentication>
в нем. Я пробовал различные методы в приложении, чтобы получить имя пользователя со следующими результатами: -
Source Result
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name 'EZ\urlname_a'
System.Environment.UserName 'NETWORK SERVICE'
System.Web.HttpContext.Current.User.Identity.Name ''
this.Request.ServerVariables["LOGON_USER"] ''
this.Request.ServerVariables["AUTH_USER"] ''
this.User.Identity.Name ''
благодаря ответам here, here и here, среди других. Ни одно из них не различает различные имена пользователей, которые были введены.
Есть ли что-нибудь еще, что я могу попробовать в коде, чтобы получить имя (или прокси для имени)? Есть ли что-нибудь, что я могу проверить в web.config
? Или, если мне нужно взять дело с хозяином, есть ли какой-нибудь разумный вопрос, который я могу задать?
Редактировать Я установил каталог приложения и .Net, используя диалог IIS хоста.
Хостинг вы используете IIS? – Amber
@ Амбер, да, я так считаю. –
Необходимо проверить, что в диспетчере IIS включена только проверка подлинности Windows. Поскольку в настоящее время он использует «NETWORK SERVICE», который (предположительно) устанавливает пул приложений. – Amber