Consider the following scenario. You use Windows Internet Explorer to browse to a web application hosted on Microsoft Internet Information Services (IIS) 7.0 or higher. The Internet Explorer browser is configured to use Pre-Authentication, and Kernel Mode Authentication is enabled in IIS. Additionally, this web request being sent by Internet Explorer is the first request to be sent to the IIS application. In this scenario, IIS may return an HTTP 401.1 response to Internet Explorer in response to the browser's request. The web browser may prompt you to enter your username and password, or the HTTP 401.1 error message may be displayed in the browser window.
This behavior is by design. The 401.1 response will occur if the web browser's first request sent to the IIS application contains an NTLM or Negotiate WWW-Authorization header (known as Pre-Authentication).
Note There are many reasons a user may be prompted for credentials in Internet Explorer which are outside the scope of this article. Please see the More Information section below to learn how to determine if the cause of the prompt is from the issue described here.
To work around this behavior, disable Pre-Authentication in Internet Explorer, or turn off Kernel Mode Authentication for the IIS Web application.
Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
To modify this behavior in Internet Explorer, use Registry Editor (Regedt32.exe) to add a value to the following registry key:
Note The above registry key is one path; it has been wrapped for readability.
Add the following registry value:
Value Name: DisableNTLMPreAuth Data Type: REG_DWORD Value: 1
To modify this behavior in IIS, disable Kernel Mode Authentication for the IIS web application.
Open Internet Information Services (IIS) Manager:
From an administrative command prompt run the following command:
In the Connections pane, expand the server name, expand Sites, and then the site, application, or Web service for which you want to disable Kernel Mode Authentication.
Scroll to the Security section in the Home pane, and then double-click Authentication.
In the Authentication pane, select Windows Authentication.
Click Advanced Settings in the Actions pane.
When the Advanced Settings dialog box appears, uncheck the Enable Kernel-mode authentication checkbox
Click OK to close the Advanced Settings dialog box.
IMPORTANT: Disabling Kernel Mode Authentication may cause web applications that require Kerberos authentication and delegation to fail.
To determine if the prompt is caused by the issue described in this article, use the Fiddler tool to look at the HTTP request/response traffic for the request resulting in the prompt in Internet Explorer. You will also need the IIS logs from the IIS Server to confirm the HTTP status and sub-status codes. The below example uses Internet Explorer 9 to illustrate this behavior:
Start the Fiddler Tool and enable traffic capture
Browse to the IIS web application such that it will result in the prompt for credentials
In Fiddler, look for the request that resulted in the 401. Looking at the Raw Request and Response views you will see entries similar to the following:
Notice that the initial request to the web application already contains the Authorization header, which then results in the 401 response. The corresponding IIS log should show an entry similar to the following:
Microsoft Internet Information Services 8.0, Microsoft Internet Information Services 7.5, Microsoft Internet Information Services 7.0, Internet Explorer 10, Windows Internet Explorer 9, Windows Internet Explorer 8, Windows Internet Explorer 7