Я пытаюсь получить имя пользователя для входа в Windows для текущего пользователя в моем проекте на сайте asp.net.
мой файл web.config содержит следующие элементы
<identity impersonate="true"/>
<authentication mode="Forms">
<forms name="app" path="/path" loginUrl="/path/login.aspx" protection="All" timeout="100" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*"/>
</authorization>
Насколько я понимаю, с этой конфигурацией я смогу получить Домен \ имя пользователя из WindowsIdentity.GetCurrent().Name
. Однако это свойство возвращает NT AUTHORITY \ IUSR, который является пользователем для анонимного доступа. Если я не ошибаюсь, я запрещаю анонимный доступ к сайту в разделе авторизации. Чего мне не хватает?
Также примечание:
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name
также возвращает NT AUTHORITY \ IUSR, а Request.ServerVariables["LOGON_USER"]
возвращает пустую строку, что противоречит информации, найденной в этой статье базы знаний http://support.microsoft.com/kb/306359
Я использую .net 4.0 и среду разработки для Windows 7.
Некоторые ресурсы, которые привели меня к этому моменту:
http://msdn.microsoft.com/en-us/library/ff647076.aspx
http://support.microsoft.com/kb/306158
http://forums.asp.net/t/1121780.aspx/1?Getting+a+users+DOMAIN+username+from+a+web+application
Спасибо за ваше время.
Редактировать
Следует отметить, что я заблокирован для проверки подлинности с помощью форм (проверка подлинности Windows не поддерживается), так как это мультитенантный сайт, и большинство пользователей не будут использовать эту функцию единого входа.