Я пытаюсь настроить проверку подлинности Windows для нового веб-сайта в IIS 7.5. У меня включен модуль проверки подлинности Windows для сайта, а все другие типы проверки подлинности (например, анонимная, базовая и т. Д.) Отключены. Пул приложений для сайта работает под пользовательским удостоверением, для которого правильно установлены заголовки SPN и хоста. При попытке получить доступ к любому содержимому (например, текстовому файлу), размещенному на сайте, через браузер, я получаю ошибку 401.2. Я последовал за это предложение и добавил useAppPoolCredentials атрибут applicationHost.config, и я могу получить доступ к ресурсу с помощью Windows auth.
Затем я удалил атрибут и снова сохранил applicationHost.config, эффективно отменив мои изменения, и я все еще могу получить доступ к ресурсу. Что дает? Может кто-нибудь помочь мне понять это поведение?
Также в одной конкретной установке IIS 7.5 на Win server 2008R2 я заметил, что любые изменения в конфигурации сайта (или приложения) по умолчанию заставляют IIS автоматически генерировать файл Web.config в корне сайта / приложения. Есть ли параметр, позволяющий включить это вместо прямого обновления applicationHost.config?
РЕДАКТИРОВАТЬ Браузер кэшировал ответ, поэтому отмена изменений и сохранение файла не имели никакого значения. Итак, единственный вопрос, который у меня сейчас есть, связан с генерацией Web.config.
Что касается вашего второго вопроса о том, как обеспечить сохранение изменений конфигурации на сайте web.config
скорее, чем applicationHost.config
, этим можно управлять с помощью делегирования функций.
Если вы перейдете к машинному узлу IIS Manager, вы увидите значок с именем «Feature Delegation»:
Запустите этот «апплет» IIS, и вам будет представлен список функций, конфигурация которых может быть делегирована web.config
.
Настройки, отмеченные Читай пиши обычно их настройки записываются в web.config
файл. Настройки, отмеченные Только чтение обычно их настройки записываются в applicationHost.config
и не может быть отменен в web.config
файл.
Так получилось, что <windowsAuthentication>
конфигурацию можно делегировать web.config
файл.
Незначительная ошибка:
Не все апплеты отображают полный набор параметров, которые вы можете настроить. Хорошим примером этого является <windowsAuthentication>
useAppPoolCredentials
атрибут. Его нигде не видно в апплете аутентификации, даже под Расширенные настройки.
Однако вы можете получить это значение (и почти все остальное) через Редактор конфигурации. Если вы перейдете к узлу вашего веб-сайта на левой панели в диспетчере IIS, вы увидите этот значок под Управление:
Если вы запустите Редактор конфигурации, вам будет представлен раскрывающийся список, содержащий дерево различных настроек:
Если мы выберем /system.webServer/security/authentication/windowsAuthentication
node нам представлен полный спектр настроек, которые можно изменить. Здесь мы видим интересующую нас настройку (useAppPoolCredentials
):
Вы можете выбрать, нужно ли настраивать значения для веб-сайта в web.config
или в applicationHost.config
из Из: раскрывающийся список рядом с раскрывающимся деревом раздела конфигурации:
Если раздел не был делегирован как Читай пиши в web.config
то вы увидите следующее:
Мы получаем предупреждение о том, что эта конкретная функция заблокирована, все настройки выделены серым цветом и отключены, и есть замок, указывающий, что дочерние настройки этой функции также заблокированы.
Наконец, не все настройки можно делегировать, например привязки сайтов, пул приложений, виртуальные каталоги.