Справка: Как включить проверку подлинности Windows на сервере разработки ASP.NET?
Я надеюсь, что любой из вас, ребята, знает, как решить эту проблему, которую мы имеем.
Мы пытаемся разместить службу WCF через Интернет. Мы устанавливаем web.config, чтобы служба требовала аутентификации Windows. Проблема, которую мы имеем, заключается в следующем:
Когда мы размещаем наш сервис в обычном IIS, сервис работает нормально, и в режиме "Аутентификация Windows" проблем нет. Однако, когда мы пытаемся запустить его из наших блоков разработчика, мы получаем следующую ошибку: "Параметры безопасности для этой службы требуют проверки подлинности Windows, но она не включена для приложения IIS, в котором размещена эта служба".
Наши разработчики не размещают сервис через обычный IIS, а через Visual Studio APS.NET Development Server. Мы попытались зайти в свойства веб-проекта и сказали, что нужно включить проверку подлинности NTLM, но это все равно не помогло. Кто-нибудь знает как это исправить? Поддерживает ли VS ASP.NET Development Server аутентификацию Windows? Является ли единственным вариантом для размещения службы с проверкой подлинности Windows является использование IIS и забыть о ASP.NET Development Server?
Спасибо Чак
4 ответа
Чтобы настроить параметры безопасности IIS Express:
- найдите символ IIS express на панели задач (в системном трее).
- Щелкните правой кнопкой мыши и выберите "Все приложения".
- Нажмите на название сайта, который вы хотите изменить (хотя я считаю, что это изменение распространяется на весь сайт)
- Нажмите на путь в разделе конфигурации ниже (он откроет файл applicationhost.config)
- Найдите раздел аутентификации и внесите изменения
Пример изменений можно найти здесь:
http://toadcode.blogspot.ca/2011/08/security-config-in-iis-express.html
ASP.Net Development Server очень ограничен. Он обслуживает только запросы, исходящие с того же компьютера, на котором он работает, и не будет обслуживать файлы, находящиеся за пределами области его применения. Он основан на сервере Кассини. Cassini не поддерживает веб-сервисы WCF. Документация для ASP.Net Development Server гласит, что он поддерживает NTLM. Если вы просто просматриваете страницу с локального компьютера, она должна работать нормально, если страница не ссылается на недоступный ресурс.
проверьте http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx для получения дополнительной информации.
Я бы установил и настроил IIS на вашем локальном компьютере разработчика и использовал бы его вместо использования встроенного веб-сервера. Чтобы использовать локальный IIS для отладки, выберите "Пользовательский локальный веб-сервер IIS" на веб-вкладке свойств проекта. Использование IIS вместо встроенного веб-сервера также означает, что вы можете настроить свое приложение точно так же, как оно будет настроено на рабочем сервере, и это уменьшит количество потенциальных неожиданностей при переходе в производственную среду.
Решением моей проблемы с авторизацией было войти в свойства проекта F4 и установить следующее:
Anonymous Authentication: Disabled
Windows Authentication: Enabled
Видимо, эти свойства обновляют IIS applicationHost.config напрямую.
http://provenstyle.com/blog/2015/10/02/Visual-Studio-2015-Windows-Authentication-And-IIS-Express/