Как получить имя пользователя с помощью проверки подлинности 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 .

Ответ 4

Я думаю, из-за приведенного ниже кода вы не получаете новых учетных данных

string fullName = Request.ServerVariables["LOGON_USER"];

Вы можете попробовать пользовательскую страницу входа.