Аутентификация Windows IIS Express
Я пытаюсь использовать 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. Есть ли параметр конфигурации, который мне не хватает?
Ответы
Ответ 1
вариант-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 SP1 может потребоваться применение опции 1 + 2 для проверки подлинности Windows. Кроме того, вам может потребоваться установить анонимную аутентификацию в значение false в приложении IIS Express application.config:
<authentication>
<anonymousAuthentication enabled="false" userName="" />
для VS2015, конфигурационный файл приложения-приложения IIS Express может быть расположен здесь:
$(solutionDir)\.vs\config\applicationhost.config
и параметр <UseGlobalApplicationHostFile>
в файле проекта выбирает конфигурационный файл по умолчанию или для решения.
Ответ 2
Visual Studio 2010 SP1 и 2012 добавили поддержку IIS Express, устраняя необходимость редактирования угловых скобок.
- Если вы еще этого не сделали, щелкните правой кнопкой мыши проект, настроенный на веб-дизайн, и выберите "Использовать IIS Express...".
- После завершения выберите веб-проект и нажмите F4, чтобы сфокусировать панель "Свойства".
- Задайте для свойства "Аутентификация Windows" значение "Включено", а свойство "Анонимная аутентификация" - "Отключено".
![enter image description here]()
Я считаю, что это решение превосходит опции vikomall.
- Вариант №1 является глобальным изменением для всех сайтов IIS Express.
- Вариант № 2 оставляет развитие cruft в web.config.
- Кроме того, это, вероятно, приведет к ошибке при развертывании в IIS 7.5, если вы не выполните процедуру "разблокировки" на сервере IIS applicationHost.config.
В приведенном выше решении на основе пользовательского интерфейса используются элементы местоположения на сайте в приложении IIS Express applicationHost.config, оставляя приложение нетронутым.
Дополнительная информация здесь:
http://msdn.microsoft.com/en-us/magazine/hh288080.aspx
Ответ 3
Основываясь на ответе от booij boy, проверьте, проверяете ли вы функцию проверки подлинности Windows
Панель управления → Программы → Включить функции Windows в или из → Информационные службы Интернета → Услуги World Wide Web → Безопасность
Кроме того, существует большая разница при использовании Firefox или Internet Explorer.
После добавления "проверки подлинности Windows" он работает для меня, но только в IE.
Ответ 4
В дополнение к этим замечательным ответам в контексте среды IISExpress dev и для того, чтобы помешать печально известной ошибке "system.web/[email protected]", вы можете просто обеспечить, чтобы в вашем приложении .config.
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
Это позволит вам проявлять большую гибкость во время разработки и тестирования, хотя перед тем, как это сделать, убедитесь, что вы понимаете последствия использования этого параметра в рабочей среде.
Полезные сообщения:
Ответ 5
В диспетчере IIS нажмите на свой сайт.
Вам нужно быть "в представлении объектов" (а не "просмотр содержимого" )
В разделе IIS "Feature view" выберите так называемую функцию "аутентификация",
и doulbe щелкните по нему.
Здесь вы можете включить проверку подлинности Windows.
Это также возможно (я думаю, в одном из предложений в потоке) установкой в файле web.config(...)
Но, возможно, у вас есть web.config, с которым вы не хотите слишком много обходить.
Тогда этот поток не будет слишком полезен, поэтому я добавил этот ответ.
Ответ 6
Этот ответ может помочь, если: 1) ваш сайт использовался для проверки подлинности Windows перед обновлением до Visual Studio 2015 и 2), и ваш сайт пытается загрузить /login.aspx
(даже если на вашем сайте нет такого файла).
Добавьте следующие две строки в раздел appSettings
вашего сайта Web.config
.
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
Ответ 7
В том же примечании - VS 2015,.vs\config\applicationhost.config не отображается или недоступно.
По умолчанию папка .vs скрыта (по крайней мере, в моем случае).
Если вы не можете найти папку .vs, выполните следующие шаги.
- Щелкните правой кнопкой мыши папку Solution
- выберите "Свойства"
- В разделе
Attributes
установите флажок Hidden
(по умолчанию не установлен),
- затем нажмите кнопку "Применить"
- Появится окно подтверждения "Применить изменения к этой папке, вложенной папке и файлам", нажмите "ОК".
Повторите шаги с 1 по 5, за исключением step 3
, на этот раз вам нужно uncheck
параметр "Скрытый", который вы отметили ранее.
Теперь вы должны иметь возможность видеть папку .vs.
Ответ 8
Сделав все в приведенных выше ответах, я понял, что я не запускаю Visual Studio в качестве администратора. После запуска в качестве администратора проблема решена.
Ответ 9
Если ни один из ответов не поможет, вам может потребоваться настроить свойства проекта. Проверьте этот другой ответ Qaru о том, как это сделать:
fooobar.com/info/58355/...