MVC4: переход от формы к оконной аутентификации

Вчера я целый день пробовал искать в Google, но, возможно, я не могу нормально искать и не нашел решения!

У меня приложение MVC4 хорошо работает в проверке подлинности с помощью форм, но теперь запрос компании - переключить проверку подлинности в Windows Authentication.

Я попытался просто изменить веб-конфигурацию и установить для нее проверку подлинности Windows, но когда я запускаю отладку, пользователь пуст (User.Identity.Name = "").

Итак, я попытался создать с помощью шаблонов VS новое веб-приложение для интрасети, чтобы посмотреть, работает ли оно нормально, и это действительно так. Я сравнил веб-конфигурацию, и ничего не пропало, но я не могу понять, как приложение получает пользователя, поскольку здесь я нашел правильные данные User.Identity.Name.

Значит, мне чего-то не хватает или мне просто нужно добавить код? Спасибо за помощь.

-EDIT: я пытаюсь поставить проверку начала сеанса, но User.Identity все еще пуст и не аутентифицирован. Не могу понять почему!


person skini82    schedule 06.11.2014    source источник


Ответы (2)


Шаг 1: откройте файл Web.config и внесите следующие изменения:

<!—
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
-->

<authentication mode="Windows" />

Шаг 2. По умолчанию приложения MVC используют проверку подлинности с помощью форм и простое членство, поэтому для запуска проверки подлинности Windows необходимо установить значение false.

<appSettings>
  <add key="webpages:Version" value="2.0.0.0" />
  <add key="webpages:Enabled" value="false" />
  <add key="PreserveLoginUrl" value="true" />
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />

  <add key="autoFormsAuthentication" value="false" />
  <add key="enableSimpleMembership" value="false"/>

</appSettings>

Шаг 3. Выберите имя проекта в обозревателе решений, а затем в проводнике свойств нажмите, чтобы включить проверку подлинности Windows.

Шаг 4. В обозревателе свойств вы можете отключить анонимную аутентификацию, если хотите, чтобы ваш полный веб-сайт для аутентифицированных пользователей находился на сервере разработки.

Справочная информация

person Nivya M    schedule 06.11.2014
comment
Изменение enableSimpleMembership на False помогло! Спасибо! - person skini82; 06.11.2014

Пожалуйста, проверьте эту конфигурацию для проверки подлинности Windows

 <authentication mode="Windows" />
    <authorization>
      <allow users="yourdomain\someotheruser" />
      <deny users="*" />
    </authorization>
person Mox Shah    schedule 06.11.2014
comment
Если я помещу это в web.config, меня попросят ввести пользователя и пароль. Я пытался много раз, но получаю неавторизованную страницу. Так что я думаю, что мой сайт не получит пользователей. Примечание: в примере MVC IE APP не запрашивает у меня ПОЛЬЗОВАТЕЛЯ / пароль, но мой пользователь распознается автоматически. - person skini82; 06.11.2014
comment
да, вы должны ввести правильное имя домена / имя пользователя и пароль (тот, который вы используете для входа в систему). Для IE по умолчанию установлен автоматический вход только в зоне интрасети. Чтобы проверить / изменить эти настройки, перейдите в IE ›Инструменты› Свойства обозревателя ›Вкладка« Безопасность »› Пользовательский уровень ›Прокрутите его до конца и найдите параметры аутентификации пользователя. - person Mox Shah; 06.11.2014