Проверка подлинности Windows на сервере, размещенном на Azure, который добавляется в домен - PullRequest
0 голосов
/ 08 января 2019

У меня есть приложение на MVC 5 с аутентификацией формы, размещенное на сервере Windows (2012), которое находится на Azure. Также этот сервер добавлен в домен.

Мой клиент попросил меня использовать учетные данные Windows для аутентификации пользователя вместо аутентификации по форме.

Итак, я изменил свою запись web.config для аутентификации следующим образом:

<system.web>
  <authentication mode="Windows"/>     
  <identity impersonate="true" />    
</system.web>

и

<system.webServer>
  <security>
    <authentication>               
        <windowsAuthentication enabled="true" useKernelMode="true">
            <providers>
                <clear />
                <add value="NTLM" />
                <add value="Negotiate" />
            </providers>
            <extendedProtection tokenChecking="Allow" />
        </windowsAuthentication>
        <anonymousAuthentication enabled="false" />

    </authentication>
  </security>
</system.webServer>

Остальные настройки IIS v-8.5) следующие:

  • Бассейн Apllication: Classic с 4.0
  • .Net версия в коде: 4.5
  • Проверка подлинности Windows включена
  • Анонимная аутентификация отключена
  • Проверка подлинности формы отключена

Тем не менее, я не могу получить электронную почту или имя пользователя Windows в любом из следующих вариантов:

uname=User.Identity.Name;
uname=UserPrincipal.Current.EmailAddress;
uname= Environment.UserName;

Чего мне не хватает?

1 Ответ

0 голосов
/ 14 января 2019

Вы можете использовать @ HttpContext.Current.User.Identity.Name, поскольку ваша конфигурация настроена на использование проверки подлинности Windows. Многие браузеры передают имя пользователя прозрачно.

Обратитесь к этой теме за некоторыми дополнительными обходными путями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...