Проверка подлинности Windows не работает, когда я запускаю проект из Visual Studio

Проверка подлинности Windows работает хорошо, когда я размещаю проект ASP.NET MVC в IIS. Но если я запустил его из Visual Studio, это не так.

Вот мой Web.config:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

Я что-то пропустил?

Ответ 1

Если вы размещаете в IIS Express (что вы, вероятно, должны), убедитесь, что вы включили проверку подлинности Windows в свойствах своего веб-приложения.

Кстати, если вы создаете новое приложение ASP.NET MVC 4 в Visual Studio с использованием шаблона приложения Intranet, на экране будет отображаться следующее Readme. Итак, продолжайте, попробуйте, прочитайте его и следуйте тому, что там написано:

Чтобы использовать этот шаблон при аутентификации Windows Azure, см. http://go.microsoft.com/fwlink/?LinkID=267940.

В противном случае, чтобы использовать этот шаблон при проверке подлинности Windows, см. следующие инструкции:

Хостинг на IIS Express:

  • Выберите проект в обозревателе решений, чтобы выбрать проект.
  • Если панель "Свойства" не открыта, откройте ее (F4).
  • На панели "Свойства" для вашего проекта:
    a) Установите "Анонимная аутентификация" на "Отключено".
    b) Установите "Аутентификация Windows" на "Включено".

Хостинг на IIS 7 или новее:

  • Откройте диспетчер IIS и перейдите на свой веб-сайт.
  • В представлении "Возможности" дважды щелкните "Аутентификация" .
  • На странице "Аутентификация" выберите "Проверка подлинности Windows". Если проверка подлинности Windows не является вариантом, вам необходимо убедиться На сервере установлена ​​проверка подлинности Windows.

Чтобы включить проверку подлинности Windows в Windows:

a) На панели управления откройте "Программы и функции". b) Выберите "Включить или отключить функции Windows". c) Перейдите в раздел "Информационные службы Интернета" > "Всемирные веб-службы" > "Безопасность" и убедитесь, что проверена проверка подлинности Windows node.

Чтобы включить проверку подлинности Windows на Windows Server:

a) В диспетчере серверов выберите веб-сервер (IIS) и нажмите "Добавить службы ролей". b) Перейдите на веб-сервеp > Безопасность и убедитесь, что проверена проверка подлинности Windows node.

  • На панели "Действия" нажмите "Включить", чтобы использовать проверку подлинности Windows.
  • На странице "Аутентификация" выберите Анонимную проверку подлинности.
  • На панели "Действия" нажмите "Отключить", чтобы отключить анонимную аутентификацию.

Ответ 2

Я не мог получить решение @Darin Dimitrov (в основном, поскольку я не мог найти параметр IIS Express, описанный в Visual Studio!).

Я обнаружил, что мне пришлось редактировать файл IIS Express application.config:

  • в Visual Studio 2013 это находится в %userprofile%\documents\iisexpress\config
  • в Visual Studio 2015 это находится в папке config в скрытой папке .vs в решении (просто добавьте \.vs\config в проводник Windows, чтобы попасть туда).

и изменить:

<windowsAuthentication enabled="false">

в

<windowsAuthentication enabled="true">