O IE10 User-Agent faz com que o ASP.Net não envie de volta o Set-Cookie (o IE10 não configura cookies)

Resumo

ASP.Net não envia de volta um header Set-Cookie ao usar o IE 10. Significando que, por exemplo, você não pode acessar um site ASP.Net usando o IE10 ao usar a Autenticação de Formulários, por exemplo.

Detalhe

No momento, estamos testando um dos nossos aplicativos da web herdados contra o IE 10 [Preview 2].

Ao tentar efetuar login usando a Autenticação de Formulários, não obtemos um header Set-Cookie na resposta se o user agent for o IE 10. Tentamos isso com um site em branco .Net 2 e .Net 4.

Porque nós não poderíamos / não acreditaríamos nisso, nós até mesmo executamos a requisição de HTTP manualmente através do telnet – depois de usar todas as ferramentas usuais – e obtivemos a mesma resposta.

 GET http://test.ourdomain.co.uk/ HTTP/1.1 Accept: */* Host: test.ourdomain.co.uk User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0) Content-Length: 0 

A solicitação HTTP acima não retorna nenhum Set-Cookie na resposta. No entanto, se simplesmente mudarmos o User-Agent para Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0) , funciona!

Alguém mais pode replicar isso? Não consigo encontrar nenhum problema conhecido com cookies do IE10 que não seja um problema que afeta padrões de URL não padrão.

Hotfix

Depois que devio postou a resposta original, com uma solução alternativa, nullptr confirmou que agora há um hotfix para isso .

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

Eu promovi o hotfix para a questão principal, pois é apenas mais útil para referência futura, mas por favor, faça up-vote os usuários mencionados.

Encontrado esta input no MS Connect , o comportamento é um bug reconhecido.

Sugestão de solução alternativa (a partir da input):

== Solução alternativa ==

Enquanto isso, para que funcione e para evitar problemas semelhantes no futuro, eu uso um arquivo ~ \ App_Browsers \ BrowserFile.browser com o seguinte:

         

O problema está em algumas instâncias do IIS pensando que o IE10 é um navegador sem cookies (isto é, não pode aceitar cookies). Em nosso caso de problema, o servidor estava configurando o cookie de autenticação e enviando-o de volta para o navegador, mas ignorando o cookie nas solicitações subsequentes.

A solução é corrigir os resources do navegador para que ele saiba que o IE10 pode fazer cookies (descrito em outra resposta nesta página) ou alterar o comportamento padrão para forçá-lo a usar cookies, mesmo que acredite que o navegador não consiga fazer cookies.

Acabamos de adicionar o seguinte à nossa seção de formulários no web.config:

cookieless = “UseCookies”

    

Há um hotfix disponível para este problema [1].

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (substitui o KB anterior)

Além disso, [2] sugere que isso atinja o Windows Update em janeiro de 2012.

2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

Obrigado pela ajuda. Não funcionou.

  1. Eu copiei o arquivo do site para C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. Executar no prompt de comando C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. Reinicie o IIS.

  4. Testado o site e funciona sem nenhum erro.

Obrigado novamente pelo feedback

Uma atualização para resposta nullptr.

Eu tentei hoje para baixar o Microsoft KB2600088. Depois de receber o link por e-mail, cliquei nele e ele me conduziu a página que diz que não está mais disponível.

Tente isto: http://support.microsoft.com/kb/2600217

Esse link é uma substituição para KB2600088 e KB2628838.

O MIcrosoft .Net Framework 4.5 também está disponível agora.

Instalado os vários patches que todos estão mencionando e por qualquer motivo o problema não foi resolvido.

Instalado o .NET Framework 4.5 Full e o problema foi embora.

Você não precisa atualizar nenhum projeto para segmentar 4.5. Basta instalá-lo no servidor.