
Kurz gesagt lautet meine Frage, ob eine ASP.NET 4.0-App, die im integrierten Modus von IIS 7 ausgeführt wird, diesen Teil meiner Web.config-Datei berücksichtigen können sollte:
<location path="auth/windows">
<system.webServer>
<modules>
<remove name="FormsAuthentication"/>
</modules>
</system.webServer>
</location>
Ich experimentiere mit gemischter Authentifizierung (Windows und Formulare). Mithilfe des IIS-Managers habe ich die anonyme Authentifizierung für auth/windows/winauth.aspx deaktiviert, das sich im obigen Speicherpfad befindet. Ich habe die Ablaufverfolgung für fehlgeschlagene Anfragen eingerichtet, um verschiedene HTTP-Statuscodes, einschließlich 302, zu verfolgen.
Wenn ich die Seite winauth.aspx anfordere, wird ein HTTP-Statuscode 302 zurückgegeben. Wenn ich mir die Anforderungsverfolgung ansehe, kann ich sehen, dass ursprünglich ein 401 (nicht autorisiert) vom AnonymousAuthenticationModule generiert wurde. Das FormsAuthenticationModule konvertiert dies jedoch in einen 302, was der Browser sieht. Es scheint also, als ob mein Versuch, dieses Modul aus der Pipeline für Seiten in diesem Pfad zu entfernen, nicht funktioniert. Aber ich sehe nirgendwo Beschwerden (Ereignisanzeige, Gelbe Seiten des Todes usw.), die darauf hinweisen würden, dass es sich um eine ungültige Konfiguration handelt. Ich möchte, dass der 401 an den Browser zurückgegeben wird, der vermutlich einen entsprechenden WWW-Authenticate-Header enthalten würde.
Noch ein paar andere Punkte: a) Ich habe es <authentication mode="Forms">
in meiner Web.config, und dorthin führt die 302-Weiterleitung; b) Ich habe den „Namen“ des Moduls, das ich zu entfernen versuche, aus der Datei inetserv\config\applicationHost.config; c) Ich habe dieses Element in meiner Web.config-Datei: <modules runAllManagedModulesForAllRequests="false">
; d) Ich habe ein <location>
Element für den Pfad ausprobiert, in dem ich den Authentifizierungsmodus auf „Keine“ eingestellt habe, aber das hat eine gelbe Ausnahmeseite ergeben, dass die Eigenschaft nicht unterhalb der Anwendungsebene festgelegt werden kann.
Hatte jemand Erfolg beim Entfernen von Modulen auf diese Weise?