in C#

Problema de autenticação com ASP.NET e IE 10 (hotfix)

Estava com um cenário em que a autenticação de uma aplicação ASP.NET MVC3, com Forms Autentication, não funcionava no IE 10 (Internet Explorer 10).

A requisição acontecia com sucesso, não apresentava nenhuma exceção, ou erro. Porem o usuário não mantinha o status de autenticado. Testando várias hipóteses eu percebi que o problema ocorria no IE10, quando eu alterava a versão de compatibilidade do IE para a versão 9, versão 8, a autenticação ocorria com sucesso.

Pensando neste cenário, resolvi analisar o problema utilizando um feramenta chamada Fiddler, com a qual é possível inspecionar as requisições http, e perceber a diferença entre o processo de autenticação no IE 9 (que funcionava) e no IE 10 (não funcionava).

 

Internet Explorer 10 (IE10)

Request para a autenticação => IE 10

image

Response da autenticação => IE 10

image

Internet Explorer 9 (IE9)

Request para a autenticação => IE 9

image

Response da autenticação => IE 9

image

 

Como é possível ver, no IE 10 o response da autenticação não marcou o cookie de autenticação, já no IE9 o cookie de autenticação foi marcado na resposta.

Com isso eu encontrei um post no StackOverflow que falava do problema que estava acontecendo:

http://stackoverflow.com/questions/6983732/ie10-user-agent-causes-asp-net-to-not-send-back-set-cookie-ie10-not-setting-coo

Ainda com esse post eu encontrei um hotfix para o .NET 4.0 que corrige o problema. Que basicamente acontecia pelo .NET não identificar corretamente as capacidades (js, cookie, etc) de alguns navegadores, com isso ele não marcava o cookie de autenticação na resposta.

“A hotfix is available for the ASP.NET browser definition files in the Microsoft .NET Framework 4.0”

http://support.microsoft.com/kb/2600088

Após a instalação e o reboot no servidor a autenticação funcionou perfeitamente no IE 10.

Espero que este post seja útil,

estou a disposição para dúvidas, criticas ou sugestões

abs

Rodolfo