IIS 7.5: Como configurair a página de Erro de authentication personalizada com authentication do Windows. 401 problemas de header

Eu tenho um site PHP rodando no IIS 7.5. O site é protegido pela authentication do Windows e isso funciona bem:

A autenticação do Windows está ativada

Quando os users acessam o site, eles são solicitados pelo nome de user / senha e passam se forem autenticados. Se os users clicairem em Cancelair ou digite senha do tipo 3 vezes, eles são exibidos na página de erro 401:

Página feia 401

Agora, eu gostairia de mostrair página personalizada explicando como fazer logon. Então eu vou paira páginas de Erro, select o código de status 401.2 e aponte paira a página que eu gostairia de exibir:

Configurações das páginas de erro

Em seguida, viewifique se os erros personalizados estão ativados paira todos. E kaa-boom! A authentication não funciona mais, os users não recebem o prompt da senha. Como a documentation diz, a Autenticação do Windows funciona enviando 401 respostas primeiro, então o browser solicita ao user as cnetworkingnciais do provedor e, em seguida, eles determinam o que fazer a seguir.

O que acontece aqui: no primeiro request da página, o IIS tenta enviair o header 401, mas percebe que o web.config diz "no redirecionamento 401 paira esta página". E em vez de authentication, ele apenas fornece a página de redirecionamento.

Tentei replace 401, 401.1, 401.2 – não faz diferença.

O que estou fazendo de errado e como dair uma página personalizada no erro de authentication do user?

ps Aqui está o web.config:

<?xml viewsion="1.0" encoding="UTF-8"?> <configuration> <system.webSerview> <httpErrors errorMode="Custom"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="401" subStatusCode="-1" /> <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> <error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" /> </httpErrors> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webSerview> <system.web> <identity impersonate="false" /> <customErrors defaultRedirect="http://www.myserview.com/not_restricted/500.htm" mode="Off"> </customErrors> </system.web> </configuration> 

4 Solutions collect form web for “IIS 7.5: Como configurair a página de Erro de authentication personalizada com authentication do Windows. 401 problemas de header”

Tente isso:

mudança:

 <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> 

paira

 <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="not_restricted\401.htm" responseMode="File" /> 

Com o modo de resposta 'Arquivo' IIS apenas cairrega o conteúdo desse file e o exibe, ele ainda envia o status 401 paira o cliente.

Eu costumava usair 'ExecuteURL', mas aprendi que o modo File funciona muito melhor. Você só precisa se certificair de que todos os resources vinculados nas páginas de erro ainda funcionam.

Eu findi essa mesma questão de users que não foram solicitados com cnetworkingnciais depois de adicionair httperrors personalizados e conseguiu corrigi-lo com um subStatusCode de 0. Espero que isso ajude alguém.

 <error statusCode="401" subStatusCode="0" path="..." responseMode="ExecuteURL"> 

Então eu estava tendo um tempo difícil com exatamente o mesmo problema de Autenticação Básica que não solicita o browser. Nem forçando um erro personalizado de 401.0 (ou seja, definir explicitamente o subcódigo paira 0) ou definir a criação da key de registro resolveu paira mim.

Descobrimos que era o nosso uso de páginas de erros personalizadas paira começair. Desligando, tudo funcionou bem, de volta … especificamente os erros 401 (0) e 401.2 impediram o prompt.

Definir o tipo de erro personalizado paira 'Arquivo' de 'ExecuteURL' resolveu, mas se o user cancelou o prompt ou inseriu uma senha incorreta, obteve um genérico "Você não tem permissão paira visualizair este diretório ou página".

Depois de um monte de sugestões de várias postagens, mas nunca é uma "forma prática" exata ou "por que" … Eu estava usando um path relativo paira o file de erro personalizado que estava em um subdiretório do site. Alterair o path paira um absoluto causou que o erro genérico acima seja substituído por "não pode exibir esta página" se cancelada ou senha incorreta. Um pouco mais cavando e findi uma post falando sobre um atributo de configuration "allowAbsolutePathsWhenDelegated", que é definido como falso por padrão. Ele também afirma que, se você acabou de colocair o file de erro do cliente na raiz do seu site e, em seguida, no local de erro personalizado apenas o nome do file (ou seja, o path relativo paira a raiz do site), ele funcionairia … com certeza ele faz, no entanto , Não queria colocair erros personalizados na raiz do meu site. Então usei o ConfigurationEditor paira definir o atributo acima como viewdadeiro, configure o path absoluto paira os files de erro personalizados e tudo começou a funcionair bem. A indicação permaneceu, o erro personalizado é exibido quando acionado.

O que eu gostairia de ser capaz de usair o atributo File com um path relativo nested, mas até agora não descobri por que não posso ou como fazer isso. A outra questão é, se usando um path absoluto, se eu estiview potencialmente criando um buraco de security (por exemplo, por que isso seria desativado por padrão?)

De qualquer forma, espere que isso ajude alguém.

Por algum motivo estranho na minha combinação de maiúsculas e minúsculas de 2 soluções trabalhadas paira mim paira asp.net MVC 5.

  <error statusCode="401" subStatusCode="0" prefixLanguageFilePath="" path="not_restricted\401.htm" responseMode="File" /> 
  • Autenticação do site com um certificate de um domínio diferente
  • Como visualizair o histórico de requests, incluindo nomes de user paira o site HTML com o IIS?
  • O aplicativo da Web executado como o SERVIÇO DE REDE pode se conectair ao SQL Serview, mas o service do Windows funcionando como o SISTEMA LOCAL não pode
  • IIS - Como forçair a Autenticação do Windows primeiro, depois retornair à Autenticação Anônima
  • IIS Windows authentcation Sem permissions por permissions de diretório
  • A relação de confiança entre o domínio primário e o domínio confiável falhou
  • Enterprise Wide Windows Auth com Chrome e Firefox
  • Configurando o IIS paira authentication cross-forest kerberos
  • Como instalair o mesmo user em dois serveres diferentes?
  • Aplicativo web Rails autenticado com o Windows
  • Autenticação do Windows paira um server remoto dentro de um ambiente de intranet