Я хочу получить имя пользователя с помощью аутентификации Windows
На самом деле я реализовал "Войти как другой пользователь", при нажатии на эту кнопку появляется Windows security, где мы можем указать учетные данные.
В это время, если я ввожу другой мандат, он принимает только текущее имя пользователя. Как получить это имя пользователя из системы безопасности 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"];
Есть идеи? Заранее спасибо
Вы можете получить объект WindowsIdentity пользователя при аутентификации Windows путем:
WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
и затем вы можете получить информацию о пользователе, например identity.Name.
Обратите внимание, что для этого кода необходимо иметь HttpContext.
Это должно сработать:
User.Identity.Name
Identity
возвращает IPrincipal
.
Вот ссылка на [документацию] Microsoft1.
Я думаю, что из-за приведенного ниже кода вы не получаете новые учетные данные
string fullName = Request.ServerVariables["LOGON_USER"];
Вы можете попробовать настроить страницу входа.