Как получить имя пользователя с помощью проверки подлинности Windows в asp.net?
Я хочу получить имя пользователя с помощью проверки подлинности Windows
На самом деле я внедрил "Войти как другой пользователь", при нажатии этой кнопки появится безопасность Windows, мы можем предоставить учетные данные.
В то время, если я даю некоторые другие учетные данные, он принимает только текущее имя пользователя.
Как получить указанное имя пользователя учетных данных из безопасности Windows?
Хост-приложение в IIS, тогда анонимная аутентификация отключена и включена проверка подлинности Windows.
web.config:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<identity impersonate="true"/>
<authorization>
<allow users="*"/>
<deny users="*"/>
</authorization>
</system.web>
<system.webServer>
<directoryBrowse enabled="true" />
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
.cs
Здесь я всегда получаю имя пользователя по умолчанию
string fullName = Request.ServerVariables["LOGON_USER"];
Любые идеи? Спасибо заранее
Ответы
Ответ 1
Вы можете получить WindowsIdentity под Windows Authentication:
WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
а затем вы можете получить информацию о пользователе, например identity.Name.
Обратите внимание, что для этого кода должен быть HttpContext.
Ответ 2
Это должно работать:
User.Identity.Name
Identity
возвращает IPrincipal
Вот ссылка на документацию Microsoft .
Ответ 3
Это зависит от конфигурации приложения, а также от IIS, как справедливо объяснил этот джентльмен в приведенной ниже ссылке. См. Его статью ниже
http://richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net/
Ответ 4
Я думаю, из-за приведенного ниже кода вы не получаете новых учетных данных
string fullName = Request.ServerVariables["LOGON_USER"];
Вы можете попробовать пользовательскую страницу входа.