Autorisierung schlägt bei Anforderungen an das Standarddokument in IIS 7.0 und höher fehl
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem die Autorisierung für die Anforderungen an ein Standarddokument in Microsoft-Internetinformationsdienste (IIS) 7.0 und höher nicht funktioniert.
Ursprüngliche Produktversion: Internetinformationsdienste Version 7.0 und höher
Ursprüngliche KB-Nummer: 2620604
Problembeschreibung
Stellen Sie sich folgendes Szenario vor: Sie verfügen über einen Webserver mit IIS 7.0 oder einer neueren Version. Der Webserver hostet eine ASP.NET 4.0-Webanwendung, die für die Verwendung der Formularauthentifizierung und eines Standarddokuments konfiguriert ist. Sie installieren das erweiterungslose URL-Update, das im Microsoft Knowledge Base-Artikel KB980368 beschrieben ist. Es ist ein Update verfügbar, das bestimmte IIS 7.0 oder IIS 7.5 auf dem Webserver aktiviert. Nachdem dieses Update installiert wurde, schlagen HTTP-Anforderungen, die an den Stamm der Webanwendung gesendet werden, fehl, und die Benutzer werden gezwungen, sich erneut zu authentifizieren, obwohl das Standarddokument so festgelegt ist, dass Benutzer über den <authorization> Abschnitt der IIS-Konfigurationsdatei zugelassen werden.
Ursache
In diesem Szenario sehen die entsprechenden Abschnitte der IIS-Konfiguration wie folgt aus:
<system.web>
<authentication mode="Forms">
<forms name="FormsCookie" defaultUrl="Home.aspx" loginUrl="Login.aspx" path="/" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
</system.web>
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
Bevor das Erweiterungslose URL-Update in KB980368 installiert wird, wird beim Senden einer Anforderung an das Stammverzeichnis der Website zuerst der statische IIS-Dateihandler ausgeführt und die Anforderung an das konfigurierte Standarddokument umgeleitet. Wenn das Standarddokument beispielsweise auf "default.aspx" und der Websitename festgelegt http://www.contoso.com ist, sendet das Senden einer Anforderung automatisch http://www.contoso.com den Benutzer an http://www.contoso.com/default.aspx . Als Nächstes werden ASP.NET aufgrund der ASPX-Erweiterung der Anforderungs-URL wiedergegeben und dem Benutzer gemäß der Autorisierungseinstellung im Tagabschnitt der Konfigurationsdatei "default.aspx" zur Seite <location> gestellt.
Nachdem das Update für die erweiterungslose URL in KB980368 installiert wurde, reagiert der ASP.NET URL-Handler ohne Erweiterung zuerst für die Anforderung an http://www.contoso.com . ASP.NET bestimmt, dass die URL eine Authentifizierung erfordert, sodass der Benutzer zur Anmeldeseite für die Formularauthentifizierung umgeleitet wird, bevor der STATISCHE IIS-Dateihandler die Möglichkeit erhält, das Standarddokument anzufordern.
Problemumgehung
Wenn ihre Webanwendung das Erweiterungslose URL-Feature nicht benötigt, können die Platzhalterhandler sicher aus der Anwendungskonfiguration entfernt werden. Entfernen Sie im IIS-Manager im Abschnitt "Handlerzuordnungen" für die Anwendung die folgenden Handler:
ExtensionlessUrl-Integrated-4.0ExtensionlessUrl-ISAPI-4.0_32bitExtensionlessUrl-ISAPI-4.0_64bit
Weitere Informationen
Weitere Informationen finden Sie unter "Ein Update ist verfügbar", mit dem bestimmte IIS 7.0- oder höher-Versionshandler Anforderungen verarbeiten können, deren URLs nicht mit einem Punkt enden.