Ядро ядра IIS использует предварительные условия, чтобы определить, когда включить конкретный модуль. Например, из соображений производительности может потребоваться выполнение управляемых модулей только для запросов, которые также отправляются в управляемый обработчик. Предварительное условие в следующем примере ( precondition="managedHandler"
) включает модуль проверки подлинности форм только для запросов, которые также обрабатываются управляемым обработчиком, таким как запросы к файлам .aspx или .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Если удалить атрибут precondition="managedHandler"
, проверка подлинности с помощью форм также применяется к содержимому, которое не обслуживается управляемыми обработчиками, такими как .html, .jpg, .doc, но также и для классических расширений ASP (.asp) или PHP (.php). В разделе « Как использовать преимущества интегрированного конвейера IIS » приведен пример включения модулей ASP.NET для запуска всего содержимого.
Вы также можете использовать ярлык для включения всех управляемых (ASP.NET) модулей для всех запросов в вашем приложении, независимо от " managedHandler
" предварительного условия.
Чтобы разрешить запуск всех управляемых модулей для всех запросов без настройки каждой записи модуля для удаления managedHandler
предварительного условия " ", используйте runAllManagedModulesForAllRequests
свойство в <modules>
разделе:
<modules runAllManagedModulesForAllRequests="true" />
При использовании этого свойства managedHandler
предварительное условие « » не действует, и все управляемые модули запускаются для всех запросов.