Freigeben über


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

In diesem Artikel wird das Problem behoben, bei dem ein unerwarteter Status 401.1 mit Vorauthentifizierungsheadern zurückgegeben wird. Er tritt auf, wenn Sie Internet Explorer zum Browser zu einer Webanwendung verwenden, die auf Internetinformationsdienste (IIS) gehostet wird.

Ursprüngliche Produktversion: Internet Explorer-Modus in Microsoft Edge, Internet Explorer 11, Internetinformationsdienste
Ursprüngliche KB-Nummer: 2749007

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verwenden Internet Explorer (oder Internet Explorer-Modus in Microsoft Edge), um eine webanwendung zu durchsuchen, die in IIS gehostet wird.
  • Der Clientcomputer ist für die Verwendung der Vorauthentifizierung in Den Interneteinstellungen konfiguriert, und die Kernelmodusauthentifizierung ist in IIS aktiviert.
  • Die von Internet Explorer (oder dem Internet Explorer-Modus in Microsoft Edge) gesendete Webanforderung ist die erste Anforderung, die an die IIS-Anwendung gesendet werden soll.

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

Ursache

Dieses Verhalten ist beabsichtigt. Die Antwort 401.1 tritt auf, wenn die erste Anforderung des Webbrowsers, die an die IIS-Anwendung gesendet wird, einen der folgenden Header enthält:

  • Ein NtLM-Header (Windows Challenge/Response)
  • Ein aushandelnder WWW-Autorisierungsheader (bekannt als Vorauthentifizierung)

Notiz

Es gibt viele Gründe, warum ein Benutzer möglicherweise zur Eingabe von Anmeldeinformationen in Internet Explorer aufgefordert wird, die sich außerhalb des Gültigkeitsbereichs dieses Artikels befinden. Im Abschnitt "Weitere Informationen" 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 den Interneteinstellungen, oder deaktivieren Sie die Kernelmodusauthentifizierung für die IIS-Webanwendung.

Warnung

Wenn Sie den Registrierungs-Editor falsch verwenden, können sie schwerwiegende Probleme verursachen, die möglicherweise eine Neuinstallation des Betriebssystems erfordern. Microsoft kann nicht garantieren, dass Sie Probleme lösen können, die sich aus der fehlerhaften Verwendung des Registrierungs-Editors ergeben. Sie verwenden den Registrierungs-Editor auf eigene Verantwortung.

Um dieses Verhalten in Internet Explorer zu ändern, verwenden Sie den Registrierungs-Editor (Regedt32.exe), um dem folgenden Registrierungsschlüssel einen Wert hinzuzufügen:

HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/

Notiz

Der Registrierungsschlüssel ist ein Pfad; sie wurde zur Besseren Lesbarkeit umschlossen.

Fügen Sie die folgenden Registrierungswerte 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 Administrator-Eingabeaufforderung ausführen:

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

  3. Scrollen Sie zum Abschnitt Sicherheit im Bereich Start, und doppelklicken Sie dann auf Authentifizierung.

  4. Wählen Sie im Bereich Authentifizierung die Option Windows-Authentifizierung aus.

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

  6. Wenn das Dialogfeld "Erweiterte Einstellungen " angezeigt wird, deaktivieren Sie das Kontrollkästchen "Kernelmodus-Authentifizierung aktivieren".

  7. Wählen Sie 'OK ' aus, um das Dialogfeld "Erweiterte Einstellungen " zu schließen.

Wichtig

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

Weitere Informationen

Um festzustellen, ob die Eingabeaufforderung durch das in diesem Artikel beschriebene Problem verursacht wird, verwenden Sie das Fiddler-Tool. Verwenden Sie das Tool, um den HTTP-Anforderungs-/Antwortdatenverkehr für die Anforderung anzuzeigen, wodurch die Eingabeaufforderung in Internet Explorer (oder im Internet Explorer-Modus in Microsoft Edge) angezeigt wird. Außerdem benötigen Sie die IIS-Protokolle vom IIS-Server, um den HTTP-Status und die Unterstatuscodes zu bestätigen. Im folgenden Beispiel wird dieses Verhalten mithilfe von Internet Explorer veranschaulicht:

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

  2. Navigieren Sie zur IIS-Webanwendung, sodass die Aufforderung zur Eingabe von Anmeldeinformationen angezeigt wird.

  3. Suchen Sie in Fiddler nach der Anforderung, die zu 401 geführt hat. Beim Betrachten der rohen Anforderungs- und Antwortansichten 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
    

Notiz

Die ursprüngliche Anforderung an die Webanwendung enthält bereits den Authorization Header, der dann zur Antwort 401 führt. Das entsprechende IIS-Protokoll sollte einen Eintrag ähnlich dem folgenden anzeigen:

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, der zugriff verweigert aufgrund ungültiger Anmeldeinformationen zugeordnet ist.

Weitere Informationen finden Sie in der folgenden Dokumentation: