Ho uno scenario in cui devo gestire l'autenticazione delle richieste Ajax utilizzando "Autenticazione moduli". Sulla base di alcune ricerche e aiuto del mio precedente post StackOverflow, avevo deciso di utilizzare il metodo descritto allo here.Codice di risposta 401 che attiva l'autenticazione di base prima del gestore errori jquery ajax
L'idea è di inviare una risposta 401 per le richieste non autenticate e quindi gestirle nel gestore degli errori AJAX. Quindi ho un gestore di errori AJAX nella mia pagina ASP.net MVC3 Layout che reindirizza il browser alla pagina di login quando riceve 401 risposte su richieste Ajax non autenticate. Ecco il gestore degli errori di ajax.
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "401") {
window.location.replace(loginUrl);
}
....
});
Questo tutto funziona bene sul mio locale IIS 7.5 Server. Ma sul server in cui è ospitato il mio sito, sfortunatamente, ricevo un popup di autenticazione di base su richieste Ajax non autenticate (ad esempio la sessione scaduta), prima che il gestore di errori AJAX venga eseguito e reindirizza il browser alla pagina di accesso. Quando annullo il popup "Autenticazione richiesta" premendo il pulsante Annulla, il gestore degli errori AJAX viene quindi eseguito e vengono reindirizzati alla pagina di accesso.
Quindi, perché il browser mostra il popup di autenticazione prima di eseguire il gestore degli errori AJAX?
Edit: il server che ospita esegue IIS 6.
fare attenzione seguendo il link in questo testo domanda di cui sopra "qui" ... esso segnala un'infezione trojan. – hal9000