Die IIS-Core-Engine verwendet Voraussetzungen, um zu bestimmen, wann ein bestimmtes Modul aktiviert werden soll. Leistungsgründe können beispielsweise bestimmen, dass Sie verwaltete Module nur für Anforderungen ausführen möchten, die auch an einen verwalteten Handler gehen. Die Voraussetzung im folgenden Beispiel ( precondition="managedHandler"
) aktiviert das Formularauthentifizierungsmodul nur für Anforderungen, die auch von einem verwalteten Handler verarbeitet werden, z. B. Anforderungen an ASPX- oder ASPX-Dateien:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Wenn Sie das Attribut entfernen precondition="managedHandler"
, gilt die Formularauthentifizierung auch für Inhalte, die nicht von verwalteten Handlern bereitgestellt werden, z. B. .html, .jpg, .doc, sondern auch für klassische ASP- (.asp) oder PHP- (.php) Erweiterungen. Unter " So nutzen Sie die integrierte IIS-Pipeline " finden Sie ein Beispiel für die Aktivierung von ASP.NET-Modulen für alle Inhalte.
Sie können auch eine Verknüpfung verwenden, um zu ermöglichen, dass alle verwalteten (ASP.NET) Module für alle Anforderungen in Ihrer Anwendung ausgeführt werden, unabhängig von der " managedHandler
" Voraussetzung.
managedHandler
Verwenden Sie die runAllManagedModulesForAllRequests
Eigenschaft im <modules>
Abschnitt, damit alle verwalteten Module für alle Anforderungen ausgeführt werden können, ohne jeden Moduleintrag so zu konfigurieren, dass die Vorbedingung " " entfernt wird :
<modules runAllManagedModulesForAllRequests="true" />
Wenn Sie diese Eigenschaft verwenden, hat die managedHandler
Vorbedingung " " keine Auswirkung und alle verwalteten Module werden für alle Anforderungen ausgeführt.
<modules runAllManagedModulesForAllRequests="true">
. Aber ich sehe jetzt, dass es Overhead verursachen könnte. Gibt es also ein bestimmtes Modul, das dafür verantwortlich ist, dass ich den Punkt "" erhalte? in MVC WebAPI Url, anstatt sie alle mit zu aktivieren<modules runAllManagedModulesForAllRequests="true">
? Ist es zum Beispiel das Modul "UrlAuthorization"?Fügen Sie den folgenden Code in web.config hinzu
quelle