IIS Express Windows Аутентификация
Я пытаюсь использовать IIS Express с VS2010 для размещения приложения Silverlight. Я изменил свой файл applicationhost.config, чтобы разрешить изменение правильных параметров конфигурации. У меня есть следующее в моем web.config:
<location path="">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Я не проходил проверку подлинности, и мой вызов службы домена возвращает нулевую запись в качестве пользователя. Мне удалось заставить это работать после установки VS2010 SP1 BETA, но я пытаюсь заставить это работать только с IIS Express.
Как включить проверку подлинности Windows для работы с IIS Express. Есть ли параметр конфигурации, который мне не хватает?
10 ответов
вариант-1:
редактировать \My Documents\IISExpress\config\applicationhost.config
файл и включить windowsAuthentication, то есть:
<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 (SP1) может потребоваться применение опции 1 + 2 для проверки подлинности Windows. Кроме того, вам может понадобиться установить для анонимной аутентификации значение false в IIS Express applicationhost.config:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
для VS2015 файл конфигурации приложения-хоста IIS Express может находиться здесь:
$(solutionDir)\.vs\config\applicationhost.config
и <UseGlobalApplicationHostFile>
опция в файле проекта выбирает файл конфигурации по умолчанию или для конкретного решения.
В Visual Studio 2010 SP1 и 2012 добавлена поддержка IIS Express, что устраняет необходимость в редактировании угловых скобок.
- Если вы еще этого не сделали, щелкните правой кнопкой мыши проект с веб-интерфейсом и выберите "Использовать IIS Express...".
- После завершения выберите веб-проект и нажмите F4, чтобы сфокусировать панель свойств.
- Установите для свойства "Аутентификация Windows" значение "Включено", а для свойства "Анонимная проверка подлинности" - значение "Отключено".
Я считаю, что это решение превосходит опции vikomall.
- Вариант № 1 является глобальным изменением для всех сайтов IIS Express.
- Вариант № 2 оставляет разработку в web.config.
- Кроме того, это, вероятно, приведет к ошибке при развертывании в IIS 7.5, если вы не выполните процедуру "разблокировки" в applicationHost.config сервера IIS.
Приведенное выше решение на основе пользовательского интерфейса использует элементы местоположения, специфичные для сайта, в applicationHost.config IIS Express, оставляя приложение без изменений.
Более подробная информация здесь: http://msdn.microsoft.com/en-us/magazine/hh288080.aspx
Опираясь на ответ от booij boy, проверьте, проверили ли вы функцию "Проверка подлинности Windows" на панели управления -> Программы -> Включение или отключение функций Windows -> Информационные службы Интернета -> Службы всемирной паутины -> Безопасность
Кроме того, кажется, есть большая разница при использовании Firefox или Internet Explorer. После включения "аутентификации Windows" у меня все работает, но только в IE.
В дополнение к этим замечательным ответам в контексте среды разработки IISExpress и для предотвращения печально известной ошибки "system.web/identity@impersonate" вы можете просто убедиться, что в вашем файле applicationhost.config имеется следующая настройка,
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
Это даст вам больше гибкости при разработке и тестировании, хотя перед тем, как сделать это, убедитесь, что вы понимаете последствия использования этого параметра в производственной среде.
Полезные сообщения:
В IIS Manager нажмите на свой сайт. Вы должны быть "в представлении функций" (а не "в представлении содержимого")
В разделе IIS "Представление функций" выберите так называемую функцию "Проверка подлинности" и нажмите на нее. Здесь вы можете включить проверку подлинности Windows. Это также возможно (я думаю, в одном из предложений в теме) с помощью настройки в web.config (...)
Но, возможно, у вас есть web.config, с которым вы не хотите слишком много времени изучать. Тогда эта тема не будет слишком много помощи, поэтому я добавил этот ответ.
Этот ответ может помочь, если: 1) ваш сайт работал с аутентификацией Windows до обновления до Visual Studio 2015 и 2) и ваш сайт пытается загрузить /login.aspx
(хотя на вашем сайте такого файла нет).
Добавьте следующие две строки в appSettings
раздел вашего сайта Web.config
,
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
Я использую Visual Studio 2019 для разработки приложения ASP.Net. Вот что было сделано для нас:
- Откройте окна свойств вашего проекта, отключите анонимную аутентификацию и включите аутентификацию Windows.
- В вашем Web.Config под system.web
И я не изменил application.config в iis express.
Если ни один из ответов не помог, вам может потребоваться изменить свойства проекта. Посмотрите этот другой ответ Stackru о том, как это сделать:
/questions/25550769/problema-autentifikatsii-pri-otladke-v-vs2013-iis-express/25550785#25550785
На той же ноте - VS 2015, .vs\config\applicationhost.config не отображается или недоступен.
По умолчанию папка.vs скрыта (по крайней мере, в моем случае).
Если вы не можете найти папку.vs, выполните следующие действия.
- Щелкните правой кнопкой мыши папку "Решение"
- выберите "Свойства"
- В
Attributes
раздел, нажмитеHidden
флажок (по умолчанию не отмечен), - затем нажмите кнопку "Применить"
- Появится окно подтверждения "Применить изменения к этой папке, подпапке и файлам", нажмите "ОК".
Повторите шаги с 1 по 5, кромеstep 3
на этот раз вам нужноuncheck
"Скрытый" вариант, который вы проверили ранее.
Теперь должна быть возможность увидеть папку.vs.
Сделав все в ответах выше, я понял, что я не запускаю Visual Studio от имени администратора. После запуска от имени администратора проблема решена.