Ядро ядра 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предварительное условие « » не действует, и все управляемые модули запускаются для всех запросов.