Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo resolve o problema em que um status 401.1 inesperado é retornado com cabeçalhos de pré-autenticação. Ele ocorre quando você usa o Internet Explorer para navegar em um aplicativo Web hospedado no IIS (Serviços de Informações da Internet).
Versão original do produto: modo Internet Explorer no Microsoft Edge, Internet Explorer 11, Serviços de Informações da Internet
Número original do KB: 2749007
Sintomas
Considere o cenário a seguir.
- Você usa o Internet Explorer (ou o modo Internet Explorer no Microsoft Edge) para procurar um aplicativo Web hospedado no IIS.
- O computador cliente está configurado para usar a pré-autenticação nas configurações da Internet e a autenticação do modo kernel está habilitada no IIS.
- A solicitação da Web enviada pelo Internet Explorer (ou modo Internet Explorer no Microsoft Edge) é a primeira solicitação a ser enviada ao aplicativo IIS.
Nesse cenário, o IIS pode retornar uma resposta HTTP 401.1 para o Internet Explorer (ou modo Internet Explorer no Microsoft Edge) em resposta à solicitação do navegador. O navegador da Web pode solicitar que você insira seu nome de usuário e senha. Ou uma mensagem de erro HTTP 401.1 pode ser exibida na janela do navegador.
Causa
Esse comportamento é por design. A resposta 401.1 ocorrerá se a primeira solicitação do navegador da Web enviada ao aplicativo IIS contiver um dos seguintes cabeçalhos:
- Um cabeçalho NTLM (Desafio/Resposta) do Windows
- Um cabeçalho Negotiate WWW-Authorization (conhecido como Pré-Autenticação)
Observação
Há muitos motivos pelos quais um usuário pode ser solicitado a fornecer credenciais no Internet Explorer que estão fora do escopo deste artigo. Consulte a seção Mais informações para saber como determinar se a causa do prompt é do problema descrito aqui.
Solução alternativa
Para contornar esse comportamento, desabilite a pré-autenticação nas configurações da Internet ou desative a autenticação do modo kernel para o aplicativo Web do IIS.
Aviso
Se você usar o Editor do Registro incorretamente, poderá causar sérios problemas que podem exigir a reinstalação do sistema operacional. A Microsoft não pode garantir que você possa resolver problemas resultantes do uso incorreto do Editor do Registro. Use o Editor do Registro por sua conta e risco.
Para modificar esse comportamento no Internet Explorer, use o Editor do Registro (Regedt32.exe) para adicionar um valor à seguinte chave do Registro:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/
Observação
A chave do Registro é um caminho; foi embrulhado para facilitar a leitura.
Adicione os seguintes valores do Registro:
- Nome do valor:
DisableNTLMPreAuth
- Tipo de dados:
REG_DWORD
- Valor:
1
Para modificar esse comportamento no IIS, desabilite a Autenticação do Modo Kernel para o aplicativo Web do IIS:
Abra o Gerenciador de Serviços de Informações da Internet (IIS) executando o seguinte comando em um prompt de comando administrativo:
%windir%\System32\inetsrv\inetmgr.exe
No painel Conexões, expanda o nome do servidor, expanda Sites e, em seguida, expanda o site, aplicativo ou serviço Web para o qual você deseja desabilitar a Autenticação do Modo Kernel.
Role até a seção Segurança no painel Página Inicial e clique duas vezes em Autenticação.
No painel Autenticação, selecione Autenticação do Windows.
Selecione Configurações avançadas no painel Ações .
Quando a caixa de diálogo Configurações avançadas for exibida, desmarque a caixa de seleção Habilitar autenticação no modo kernel.
Selecione OK para fechar a caixa de diálogo Configurações avançadas .
Importante
Desabilitar a autenticação do modo kernel pode fazer com que os aplicativos Web que exigem autenticação e delegação Kerberos falhem.
Mais informações
Para determinar se o prompt é causado pelo problema descrito neste artigo, use a ferramenta Fiddler. Use a ferramenta para exibir o tráfego de solicitação/resposta HTTP para a solicitação que resulta no prompt no Internet Explorer (ou no modo Internet Explorer no Microsoft Edge). Você também precisará dos logs do IIS do servidor IIS para confirmar o status HTTP e os códigos de substatus. O exemplo a seguir usa o Internet Explorer para ilustrar esse comportamento:
Inicie a ferramenta Fiddler e habilite a captura de tráfego.
Navegue até o aplicativo Web do IIS de forma que ele resulte na solicitação de credenciais.
No Fiddler, procure a solicitação que resultou no 401. Examinando as exibições brutas de solicitação e resposta, você verá entradas semelhantes às seguintes:
Cabeçalhos de solicitação:
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>
Cabeçalhos de resposta
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
Observação
A solicitação inicial para o aplicativo Web já contém o Authorization
cabeçalho, que resulta na resposta 401. O log do IIS correspondente deve mostrar uma entrada semelhante à seguinte:
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
O status HTTP e o substatus são 401.1, que mapeia para Acesso negado devido a credenciais inválidas.
Para saber mais, confira a seguinte documentação: