Проверка подлинности windows не работает с iis express 10

На работе нам пришлось обновить оборудование, когда мы перешли с Windows 7 с VS 2013 и IIS Express 6 на Windows 10 с VS 2017 и IIS Express 10. Проблема в том, что проверка подлинности Windows отказывается работать. Я получаю 401.2 - Неавторизованный с объяснением «Недействительные заголовки аутентификации».

Я проверил web.config и свойства веб-проекта, и они верны. Я изменил файл applicationhost.config в папке .vs проекта, чтобы включить проверку подлинности Windows. Я даже проверил права доступа к файлам, чтобы убедиться, что у аутентифицированных пользователей есть нужные разрешения. Ничего из этого не сработало.

Все это прекрасно работало в IIS Express 6. Что Microsoft изменила в IIS Express 10, что все испортило?

Изменить: нужно вручную ввести этот материал, так как я не могу перенести код с машины разработчика.

web.config:

<system.web>
  <customErrors mode="off"/>
  <compilation debug="true" targetFramework="4.5.1" />
  <httpRuntime targetFramework="4.5" />
  <authentication mode="Windows" />
  <authorization>
     <allow users="*" />
  </authorization>
</system.web>

Если вам нужны другие разделы web.config, спросите меня.

Что касается ApplicationHost.config, это в основном то, что создает VS2017, так как это новая машина, а существующей с проектом не было. Изменения, которые я пробовал внести:

<windowsAuthentication enabled="true">   

<anonymousAuthentication enabled="false" userName="">   

<section name="windowsAuthentication" overrideModeDefault="allow">

Еще одна точка данных: приложение работает в Firefox. Я могу нормально войти на наши тестовые серверы, работающие под управлением IIS 8.5, но не могу получить доступ к приложению в IIS Express.

С тех пор я создал новое приложение MVC и просто запустил его. Он отлично работает в IE, но не аутентифицирует пользователей из Firefox и Edge.

Изменить: обнаружено, что Edge не поддерживает аутентификацию Windows на локальном хосте: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/4776775/

По-прежнему нужно заставить его работать с Firefox.

Снова отредактируйте: Итак, я думаю, что знаю, что происходит. У меня есть две учетные записи: обычная учетная запись пользователя и учетная запись администратора с дополнительными привилегиями. Что я сделал под Windows 7, так это то, что пока я входил в свою обычную учетную запись, я запускал VS под своей учетной записью администратора. Затем я мог запустить свое веб-приложение и войти на веб-сайт под своей учетной записью администратора. Кажется, это больше не работает. Единственный способ заставить мое приложение работать - запустить его под моей учетной записью администратора. В противном случае проверка подлинности Windows не будет работать. С точки зрения безопасности это чертовски сломано, и я хотел бы найти лучшее решение.

Есть только IIS 7/8/10 Express. Какая у вас версия Windows 10?

Lex Li 10.08.2018 18:15

Это было то, что IIS Express поставлялось с VS 2013. Windows - это Windows 10 Enterprise.

Jason B 10.08.2018 18:24

Не уверен, правильно ли вы отредактировали. Можете ли вы использовать для проверки такой инструмент, как Jexus Manager? jexusmanager.com/getting-started/features.html

Lex Li 10.08.2018 18:26

Нет, не могу. К сожалению, моя машина разработчика находится в собственной сети, и у меня нет возможности перенести на нее программное обеспечение.

Jason B 10.08.2018 18:34

Затем вам нужно будет опубликовать свои файлы конфигурации как часть вашего вопроса. Я не думаю, что вы столкнулись с чем-то особенным, поскольку у других IIS 10 Express работает должным образом.

Lex Li 10.08.2018 18:37

Обновлено. Следующим шагом может быть создание веб-проекта в 2017 году и поиск отличий.

Jason B 10.08.2018 19:03

Что вы изменили в applicationHost.config? Без этого вопрос будет неполным.

Lex Li 10.08.2018 19:04

Посмотрите на свой applicationhost.config, который находится в `% HOMEPATH% \ Documents \ IISExpress \ config`. Поставщик должен быть добавлен в раздел проверки подлинности Windows. См. stackoverflow.com/a/5806794/881798

vendettamit 10.08.2018 19:20

В ссылке указано то, что есть у меня.

Jason B 10.08.2018 19:30

Существует множество статей о том, как разрешить Firefox работать с аутентификацией Windows, например community.rsa.com/docs/DOC-53962.

Lex Li 11.08.2018 05:01

Лекс Ли - Спасибо, но я пытаюсь решить не эту проблему. Я пытаюсь заставить Windows Authentication вообще работать для Firefox и IIS Express.

Jason B 13.08.2018 06:11

Спасибо, что разместили свою резолюцию. Я неожиданно столкнулся с этой же проблемой. У меня было приложение MVC, которое обращалось к веб-API. Единственное, что сработало, - это добавление <authorization> <allow users = "*" /> </authorization> в web.config приложения MVC. Мне до сих пор неясно, зачем это нужно.

DerHaifisch 03.07.2021 12:08
4
12
6 463
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я отмечу этот вопрос как ответ и задам новый вопрос. Текущее решение - запустить все в нашей учетной записи администратора, чтобы проверка подлинности Windows работала. Не идеально.

вам нужно только изменить некоторые свойства в вашем проекте, как указано в ссылке ниже! включить проверку подлинности Windows

Спасибо за вклад, но проблема не в этом. Прочтите последнее изменение выше.

Jason B 14.02.2019 20:09

Фактически, это была моя проблема. Мне пришлось отключить анонимную проверку подлинности и включить проверку подлинности Windows в свойствах проекта.

Smile4ever 02.12.2019 15:13

Другие вопросы по теме