Autenticación integrada de Windows por aplicación Si el usuario cancela la solicitud ¿Puedo redirigirlos a otra página?

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

Pregunta

EDITAR ~ Actualizar el título y el cuerpo de la pregunta: esta es la edición.

Quiero este comportamiento por aplicación en IIS6/7. Lo pregunté inicialmente antes de migrar a IIS7, por lo que cualquier respuesta puede ser alterada entre los dos (he aprendido un poco sobre IIS7 desde entonces;]) pero estoy buscando una respuesta que funcione.

Necesito redirigir por aplicación, no por servidor, según el usuario, cancele la solicitud 401 de Auth (lo que significa 401.1 Código de error). Espero que esto ayude.


En IIS6, utilizando la autenticación NTLM (que significa autenticación integrada de Windows) Si el usuario cancela la solicitud de autenticación, ¿cómo puedo redirigirlos a otra página? No puedo simplemente agarrar 401 (probado) o 401.1 (no un int) en la web.config.

No puedo redirigir si el problema es un estado 401 porque estoy presionando intencionalmente por un 401 para obtener la respuesta, ¿sí? Entonces, ¿cómo captura cuando cancelaron en el desafío del navegador?

Para confirmar que estoy siendo claro: si abro Firefox y navega a una página de IWA, me muestra un diálogo (suponiendo que no lo haya configurado en Acerca de: config) y liquido las credenciales de Windows para usar. Quiero evitar que detengan esa caja.

¿Fue útil?

Solución

Sé que esto es antiguo, pero algunos tipos de respuesta no se pasan a .NET para su procesamiento. En cambio, tienen que ser manejados a nivel IIS. Si desea una página diferente basada en la respuesta, debe ir al Administrador de IIS y encontrar la sección que controla las páginas de error (es diferente dependiendo de la versión IIS que esté utilizando.

Luego agregue el código de estado que desea capturar y dale la página a la que desea que se dirija el navegador.

Sé que mencionaste IIS 6, pero no tengo acceso a uno de esos servidores. Para IIS 7, haga clic en el sitio. Vaya a la sección IIS> Páginas de error. Haga clic en Agregar. Escriba el código (401.1) y déle una ruta a una página en su sitio. Asegúrese de que la página sea accesible para Anonymous.

ACTUALIZAR:
Encontré información nueva. Puede manejar esto en su web.config. Consulte el siguiente sitio para obtener más detalles: Learn.iis.net

En la sección Errores de su web.config, haga lo siguiente (como ejemplo):

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

No sé si puedes usar las páginas .aspx para esto, pero seguro que lo parece. Sin embargo, probablemente tendrán que ser completamente autónomos.

Documentación de Microsoft en el Sustatuscode está en MSDN. Según ellos, solo funciona en IIS 7, .NET 3.0+ y cuando se usa el modo de tubería integrado. Esto podría ser un poco restrictivo dependiendo de su aplicación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top