Após o desenvolvimento de um controlo de autenticação todo boneco, com as necessárias preocupações em termos de segurança, usando uma estratégia de desafio-resposta deparei-me com um problema. Um utilizador depois de fazer login e logout já não conseguia fazer login novamente! wow, o que é que se passa...
Como desconfiei logo do que se passava encontrar a solução foi rápido. Mas voltando ao problema, o segundo pedido do desafio era realizado para o mesmo URL que o primeiro, logo, como o browser tinha a resposta a esse pedido em cache nem fazia o pedido ao servidor... conclusão, retornava o mesmo desafio que, naturalmente, já não era válido do ponto de vista do servidor e o processo de login falhava mais à frente.
Solução: meti um parâmetro adicional na queryString só para o pedido ser "diferente" (usei a data actual do sistema do cliente)
Etiquetas: AJAX, ASP.NET, Programação
Subscrever:
Enviar feedback (Atom)
3 comentários:
E porquê não desconfiaste disso logo no semestre passado? ah? Foi só para me deixares a olhar com cara de burro para o Eng. só pode! :)
A cultura desta vez já era outra :)
Outra solução:
xhr.setRequestHeader('If-Modified-Since', 'Thu, 1 Jan 1970 00:00:00 GMT');
xhr.setRequestHeader('Cache-Control', 'no-cache');
Antes do send ;)
http://ajaxian.com/archives/ajax-ie-caching-issue
Enviar um comentário