Ein unerwarteter 401.1-Status wird zurückgegeben, wenn Sie Header vor der Authentifizierung mit Internet Explorer und IIS verwenden.

In diesem Artikel wird das Problem behoben, bei dem ein unerwarteter 401.1-Status mit Pre-Authentication-Headern zurückgegeben wird. Es tritt auf, wenn Sie Internet Explorer verwenden, um eine Webanwendung zu browsern, die auf Internetinformationsdienste (IIS) gehostet wird.

Originalversion des Produkts:  IE-Modus für Edge, Internetinformationsdienste, Internet Explorer 11, 10, 9
Ursprüngliche KB-Nummer:  2749007

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verwenden Windows Internet Explorer, um zu einer Webanwendung zu navigieren, die unter IIS 7.0 oder höher gehostet wird.
  • Der Internet Explorer-Browser ist für die Verwendung der Vorauthentifizierung konfiguriert, und die Kernelmodusauthentifizierung ist in IIS aktiviert.
  • Darüber hinaus ist diese Webanforderung, die von Internet Explorer gesendet wird, die erste Anforderung, die an die IIS-Anwendung gesendet wird.

In diesem Szenario gibt IIS möglicherweise eine HyperText Transfer Protocol (HTTP) 401.1-Antwort an Internet Explorer als Antwort auf die Anforderung des Browsers zurück. Möglicherweise werden Sie vom Webbrowser aufgefordert, Ihren Benutzernamen und Ihr Kennwort einzugeben. Oder die HTTP 401.1-Fehlermeldung wird möglicherweise im Browserfenster angezeigt.

Ursache

Es handelt sich hierbei um ein beabsichtigtes Verhalten. Die 401.1-Antwort tritt auf, wenn die erste Anforderung des Webbrowsers, die an die IIS-Anwendung gesendet wird, einen der folgenden Header enthält:

  • einen WINDOWS-Abfrage-/Antwortheader (NTLM)
  • a Negotiate WWW-Authorization header (bekannt als Pre-Authentication)

Hinweis

Es gibt viele Gründe, warum ein Benutzer möglicherweise zur Eingabe von Anmeldeinformationen in Internet Explorer aufgefordert wird, die außerhalb des Gültigkeitsbereichs dieses Artikels liegen. Im Abschnitt "Weitere Informationen " unten erfahren Sie, wie Sie ermitteln können, ob die Ursache der Eingabeaufforderung aus dem hier beschriebenen Problem stammt.

Problemumgehung

Um dieses Verhalten zu umgehen, deaktivieren Sie die Vorauthentifizierung in Internet Explorer, oder deaktivieren Sie die Kernelmodusauthentifizierung für die IIS-Webanwendung.

Warnung

Wenn Sie den Registrierungs-Editor falsch verwenden, können schwerwiegende Probleme auftreten, die eine Neuinstallation des Betriebssystems erfordern. Microsoft kann nicht garantieren, dass Sie Probleme lösen können, die sich aus der falschen Verwendung des Registrierungs-Editors ergeben. Verwenden Sie den Registrierungs-Editor auf eigene Gefahr.

Verwenden Sie zum Ändern dieses Verhaltens in Internet Explorer den Registrierungs-Editor (Regedt32.exe), um dem folgenden Registrierungsschlüssel einen Wert hinzuzufügen:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/

Hinweis

Der oben genannte Registrierungsschlüssel ist ein Pfad; es wurde zur besseren Lesbarkeit umschlossen.

Fügen Sie den folgenden Registrierungswert hinzu:

  • Wertname: DisableNTLMPreAuth
  • Datentyp: REG_DWORD
  • Wert: 1

Um dieses Verhalten in IIS zu ändern, deaktivieren Sie die Kernelmodusauthentifizierung für die IIS-Webanwendung.

  1. Öffnen Sie Internetinformationsdienste (IIS)-Manager, indem Sie den folgenden Befehl an einer administrativen Eingabeaufforderung ausführen:

    %windir%\System32\inetsrv\inetmgr.exe
    
  2. Erweitern Sie im Bereich "Verbindungen " den Servernamen, erweitern Sie "Websites" und dann den Standort, die Anwendung oder den Webdienst, für den Sie die Kernelmodusauthentifizierung deaktivieren möchten.

  3. Scrollen Sie im Startbereich zum Abschnitt "Sicherheit", und doppelklicken Sie dann auf "Authentifizierung".

  4. Wählen Sie im Bereich "Authentifizierung" Windows Authentifizierung aus.

  5. Wählen Sie im Bereich "Aktionen" die Option "Erweiterte Einstellungen" aus.

  6. Wenn das Dialogfeld "Erweiterter Einstellungen" angezeigt wird, deaktivieren Sie das Kontrollkästchen Kernelmodusauthentifizierung aktivieren.

  7. Klicken Sie auf "OK", um das Dialogfeld "Erweitert Einstellungen" zu schließen.

Wichtig

Das Deaktivieren der Kernelmodusauthentifizierung kann dazu führen, dass Webanwendungen, die Kerberos-Authentifizierung und -Delegierung erfordern, fehlschlagen.

Weitere Informationen

Verwenden Sie das Fiddler-Tool, um festzustellen, ob die Eingabeaufforderung durch das in diesem Artikel beschriebene Problem verursacht wird. Verwenden Sie das Tool, um den HTTP-Anforderungs-/Antwortdatenverkehr für die Anforderung anzuzeigen, der zu der Eingabeaufforderung in Internet Explorer führt. Sie benötigen auch die IIS-Protokolle vom IIS-Server, um den HTTP-Status und die Unterstatuscodes zu bestätigen. Das folgende Beispiel verwendet Internet Explorer 9, um dieses Verhalten zu veranschaulichen:

  1. Starten Sie das Fiddler-Tool, und aktivieren Sie die Datenverkehrserfassung.

  2. Navigieren Sie zur IIS-Webanwendung, sodass sie die Aufforderung zur Eingabe von Anmeldeinformationen zur Folge hat.

  3. Suchen Sie in Fiddler nach der Anforderung, die zum 401 geführt hat. Wenn Sie sich die unformatierten Anforderungs- und Antwortansichten ansehen, werden Einträge wie die folgenden angezeigt:

    Anforderungsheader:

    GET /App1/default.aspx HTTP/1.1
    Accept-Language: en-US
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    Host: websitename
    Cookie: ASP.NET_SessionId=jdzbfpnmacq0jykhxnhqhe3j
    Authorization: Negotiate
    <header content omitted>
    

    Antwortheader

    HTTP/1.1 401 Unauthorized
    Content-Type: text/html
    Server: Microsoft-IIS/7.5
    WWW-Authenticate: Negotiate
    WWW-Authenticate: NTLM
    X-Powered-By: ASP.NET
    Date: Wed, 22 Aug 2012 17:41:09 GMT
    Content-Length: 1293
    Proxy-Support: Session-Based-Authentication
    

Hinweis

Die anfängliche Anforderung an die Webanwendung enthält bereits den Authorization Header, was dann zur Antwort 401 führt. Im entsprechenden IIS-Protokoll sollte ein Eintrag angezeigt werden, der dem folgenden ähnelt:

2012-08-22 17:41:09 2001:4898:0:fff:200:5efe:157.59.113.72 GET /App1/default.aspx - 80 - 2001:4898:0:fff:0:
5efe:172.18.100.183 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/5.0;+SLCC2;+.NET+CLR+
2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E;+InfoPath.3;+MS-
RTC+EA+2;+BRI/1;+Zune+4.7;+MS-RTC+LM+8;+BRI/2;+Creative+AutoUpdate+v1.41.02) 401 1 2148074254 5005

Der HTTP-Status und der Unterstatus sind 401.1, was access Denied aufgrund ungültiger Anmeldeinformationen zugeordnet ist.

Weitere Informationen finden Sie in der folgenden Dokumentation: