Tengo un escenario donde tengo que manejar la autenticación de solicitudes ajax usando "Autenticación de formularios". Basado en alguna búsqueda y ayuda de mi publicación anterior de stackoverflow, decidí usar el método descrito en here.Código de respuesta 401 activando la autenticación básica antes del controlador de error jquery ajax
La idea es enviar de vuelta una respuesta 401 para solicitudes no autenticadas, y luego manejar eso en el controlador de error AJAX. Así que tengo un controlador de errores AJAX en mi página ASP.NET MVC3 Layout que redirige el navegador a la página de inicio de sesión cuando recibe la respuesta 401 en solicitudes ajax no autenticadas. Aquí está el controlador de errores ajax.
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "401") {
window.location.replace(loginUrl);
}
....
});
Todo esto funciona bien en mi servidor local IIS 7.5. Pero en el servidor donde está alojado mi sitio, desafortunadamente, recibo una ventana emergente de autenticación básica sobre solicitudes ajax no autenticadas (por ejemplo, tiempo de espera agotado), antes de que el manejador de errores AJAX se ejecute y redirija el navegador a la página de inicio de sesión. Cuando cancelo la ventana emergente "Autenticación requerida" presionando el botón Cancelar, el controlador de error AJAX se ejecuta y me redireccionan a la página de inicio de sesión.
Entonces, ¿por qué el navegador muestra la ventana emergente de autenticación antes de ejecutar el controlador de errores AJAX?
Editar: el servidor que aloja ejecuta IIS 6.
tener cuidado siguiendo el enlace en este texto de la pregunta anterior "aquí" ... se informa de una infección troyano. – hal9000