У меня возникла странная проблема при тестировании Asp. Net Webforms приложения с Windows аутентификацией и IIS Express.
Вот контекстная информация: ОС:
OS Name Microsoft Windows Server 2016 Standard
Version 10.0.14393 Build 14393
Visual Studio 2019:
Microsoft Visual Studio Enterprise 2019
Version 16.4.6
VisualStudio.16.Release/16.4.6+29905.134
Microsoft .NET Framework
Version 4.8.03761
Приложение: Asp. net WebForms, MVC 5, приложение Web Api 2.0 с Windows аутентификацией. Я использую Chrome & FireFox для тестирования приложения и IIS Express 10.
У меня есть две windows учетные записи, назовем их Account1 и Account2 в домене под названием SomeDomain, который является основным доменом. Обе учетные записи имеют права локального администратора на этой виртуальной машине. UA C включен на этой виртуальной машине. Я не запускаю Visual Studio от имени администратора.
Когда я занимаюсь разработкой, я вошел в систему как Account1. У меня нет проблем с этой учетной записью. Тем не менее, когда я вхожу в приложение под учетной записью Account2 (когда меня запрашивает браузер), я перехожу на страницу по умолчанию, но затем нажимаю на некоторые другие страницы и мне снова предлагается пароль. Иногда одна страница может работать, и во второй раз, когда я захожу на эту страницу, меня просят ввести пароль! Очень странно Я должен сказать, что у меня никогда не было такой проблемы на предыдущих виртуальных машинах разработки с Windows Server 2012 и Visual Studio 2017.
Теперь я начал исследовать, чтобы увидеть, что происходит. Прежде всего, Account2 имеет доступ для чтения к каталогу приложения. Я дважды проверил это, используя функцию Effective Access в Windows -> диалоге безопасности.
Я проверил файл журнала IIS Express, и вот ошибка:
<EventData>
<Data Name="ContextId">{8000002A-0001-FA00-B63F-84710C7967BB}</Data>
<Data Name="ModuleName">IIS Web Core</Data>
<Data Name="Notification">2</Data>
<Data Name="HttpStatus">500</Data>
<Data Name="HttpReason">Internal Server Error</Data>
<Data Name="HttpSubStatus">0</Data>
<Data Name="ErrorCode">2147943746</Data>
<Data Name="ConfigExceptionInfo"></Data>
</EventData>
<RenderingInfo Culture="en-US">
<Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">AUTHENTICATE_REQUEST</freb:Description>
<freb:Description Data="ErrorCode">Either a required impersonation level was not provided, or the provided impersonation level is invalid.
(0x80070542)</freb:Description>
</RenderingInfo>
Поиск в интернете видно, что эти ошибки мучают разработчиков уже очень давно. Но сейчас 2020?