Autenticação integrada do Windows per-app, se o usuário cancela a solicitação posso redirecioná-los para outra página?

StackOverflow https://stackoverflow.com/questions/2541701

Pergunta

EDITAR ~ Atualizado o título e a questão do corpo:Esta é a editar.

Eu quero esse comportamento por aplicativo no IIS6/7.Eu perguntei a ele, inicialmente, antes que migraram para o IIS7, portanto, qualquer resposta pode ser alterada entre os dois (que aprendi um pouco sobre o IIS7 desde então;]), mas eu estou procurando uma resposta que não funciona.

Eu preciso redirecionar per-app não per-server com base em cancelamento de 401 Auth pedido (o que significa 401.1 do código de erro).Espero que isso ajude.


No IIS6, usando a Autenticação NTLM (o que significa Autenticação Integrada do Windows) se o usuário cancela a solicitação de autenticação, como pode redirecioná-los para outra página?Eu não posso apenas pegar 401 (fechar) ou 401.1 (não um int) na web.config.

Eu não posso redirecionar, se o problema é um status 401, porque eu sou intencionalmente empurrando para um 401 para obter a resposta, tá?Então, como faço para capturar quando eles cancelada no navegador desafio?

Para confirmar que eu estou sendo claro:Se eu abrir o firefox e navegue para um IWA página, ele me mostra uma caixa de diálogo (supondo que eu não tenha configurado que a distância em about:config) e eu introduza as credenciais do windows para usar.Eu quero impedi-los parar caixa.

Foi útil?

Solução

Eu sei que isso é antigo, mas alguns tipos de resposta não são passados para .líquido para o processamento.Em vez disso, eles têm de ser tratados no nível do IIS.Se você quer uma página diferente com base na resposta, então você precisa para ir para o Gerenciador do IIS e localize a seção que controla as Páginas de Erro (é diferente dependendo da versão do IIS que você está usando.

Em seguida, adicione o código de status você deseja capturar e dar-lhe a página que você deseja que o navegador para ser direcionado.

Eu sei que você mencionou IIS 6, mas eu não tenho acesso a um desses servidores.Para o IIS 7, clique em site.Ir para o IIS > Páginas de Erro secção.Clique Em Adicionar.Digite o código (401.1) e dar a ele um caminho para uma página do seu site.Certifique-se de que a página esteja acessível para anônimo.

ATUALIZAÇÃO:
Eu encontrei algumas informações novas.Você pode lidar com isso em sua web.config.Consulte o seguinte site para obter mais detalhes: learn.iis.net

Na seção de erros de sua web.config fazer o seguinte (como um exemplo):

 <error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />

Eu não sei se você pode usar .páginas aspx para isso, mas se parece com ele.No entanto, eles provavelmente terão de ser completamente auto-contido.

Documentação da Microsoft sobre o substatuscode é no MSDN.De acordo com eles, isso SÓ funciona no IIS 7 .Net 3.0+, e quando usar o modo de pipeline integrado.Isso pode ser um pouco restritivo, dependendo de sua aplicação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top