Аутентификация Windows не работает в IIS Express, отладка с Visual Studio 2013, Windows 8
Я только что обновил свое приложение с Visual Studio 2012 до Visual studio 2013. Моя проверка подлинности Windows больше не работает. Это дает мне ошибку ниже.
HTTP Error 401.2 - Unauthorized
You are not authorized to view this page due to invalid authentication headers.
В визуальной студии есть возможность выбрать аутентификацию непосредственно из свойств веб-сайта. Поэтому я отключил анонимный доступ и включил проверку подлинности Windows, но он просит меня ввести имя пользователя и пароль, как показано ниже. Даже если я даю учетные данные домена здесь. Он все еще дает мне это всплывающее окно снова и снова.
![enter image description here]()
![enter image description here]()
Веб-конфигурация:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="false" />
<trace enabled="true" />
IIS Express aspnetConfig:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
<authorization>
<add accessType="Allow" users="*" />
</authorization>
<location path="Path">
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
</location>
Сообщите мне, если вы хотите получить более подробную информацию об этом.
Обновление:
Я узнал, что если я удалю ниже строки из web.config, чем он начнет работать.
<remove users="*" roles="" verbs="" />
Ответы
Ответ 1
Будьте осторожны с модификациями applicationhost.config - в Visual Studio 2015 я обнаружил, что иногда находится в локальном каталоге проекта.
Например:
DRIVE:\MYPROJECT\.vs\config\applicationhost.config
Если вы не знаете, какой файл конфигурации приложенияhosthost используется, вы можете контролировать доступ к файлам с помощью ProcMon, а затем сузить результаты на основе "Путь", чтобы увидеть, что VS фактически читает во время отладки.
Обновить. Это похоже на поведение в Visual Studio 2017.
Ответ 2
Похоже, вы решили свой вопрос! Хорошо тебе. В дополнение к этому сообщению, помогающему мне, я обнаружил, что следующее является СУПЕР полезным для настройки моего IIS Express.
Аутентификация IIS Express Windows
Изменение: я скопировал важную информацию из связанной ссылки на случай, если она умрет. Это полностью от пользователя vikomall
Опция-1:
отредактируйте файл \My Documents\IISExpress\config\applicationhost.config
и включите аутентификацию windows, т.е.
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
вариант-2:
Разблокируйте раздел windowsAuthentication в \My Documents\IISExpress\config\applicationhost.config следующим образом
<add name="WindowsAuthenticationModule" lockItem="false" />
Измените настройки переопределения для необходимых типов аутентификации на "Разрешить"
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
Добавьте следующее в приложение web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
Ниже может помочь ссылка:
http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
После установки VS 2010 с пакетом обновления 1 может потребоваться применение опции 1 + 2, чтобы работала проверка подлинности Windows. Кроме того, вам может понадобиться установить для анонимной проверки подлинности значение false в IIS Express applicationhost.config:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
Ответ 3
В Visual Studio 2017, основной проект asp.net, аутентификация устанавливается на launchSettings.json
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:54491/",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"TestAspNetCoreProd": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:54492"
}
}
}
Ответ 4
Для Visual Studio 2019 файл applicationhost.config будет найден в
DRIVE:\MyProject\.vs\$ (Projectname)\Config\ApplicationHost.config