IE10 User-Agent hace que ASP.Net no envíe Set-Cookie (IE10 no configura cookies)

Resumen

ASP.Net no envía un encabezado Set-Cookie cuando usa IE 10. Lo que significa que, por ejemplo, no puede iniciar sesión en un sitio ASP.Net utilizando IE10 al usar Autenticación de formularios, por ejemplo.

Detalle

Actualmente estamos probando una de nuestras aplicaciones web heredadas contra IE 10 [Vista previa 2].

Cuando intentamos iniciar sesión utilizando la Autenticación de formularios, no obtenemos un encabezado Set-Cookie en la respuesta si el user-agent es de IE 10. Hemos intentado esto con un sitio en blanco .Net 2 y .Net 4.

Como no podíamos / no queríamos creerlo, incluso ejecutamos la siguiente solicitud HTTP manualmente a través de telnet , luego de usar todas las herramientas habituales, y recibimos la misma respuesta.

 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 

La solicitud HTTP anterior no devuelve Set-Cookie en la respuesta. Sin embargo, si simplemente cambiamos el User-Agent a Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0) ¡funciona!

¿Alguien más puede replicar esto? No puedo encontrar ningún problema conocido con las cookies de IE10 que no sea un problema que afecta los patrones de URL no estándar.

Revisión

Después de que devio publicó la respuesta original, con una solución temporal , nullptr ha confirmado que ahora hay una revisión para esto .

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

Promoví la revisión a la pregunta principal, ya que es más útil para futuras referencias, pero por favor háganlo: voten los usuarios mencionados.

Encontré esta entrada en MS Connect , el comportamiento es un error reconocido.

Solución sugerida (desde la entrada):

== Solución temporal ==

Mientras tanto, para que funcione y para evitar problemas similares en el futuro, utilizo un archivo ~ \ App_Browsers \ BrowserFile.browser con lo siguiente:

         

El problema descansa en algunas instancias de IIS que piensan que IE10 es un navegador sin cookies (es decir, no admite cookies). En nuestro caso problema, el servidor estaba configurando la cookie de autenticación y enviándola de vuelta al navegador, pero luego ignoraba la cookie en solicitudes posteriores.

La solución es parchear las capacidades del navegador para que sepa que IE10 puede hacer cookies (resumidas en otra respuesta en esta página), o cambiar el comportamiento predeterminado para obligarlo a usar cookies, incluso si cree que el navegador no puede hacerlas.

Acabamos de agregar lo siguiente a nuestra sección de formularios en web.config:

cookieless = “UseCookies”

    

Hay una revisión disponible para este problema [1].

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

Además, [2] sugiere que esto llegará a Windows Update en enero de 2012.

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

Gracias por la ayuda. Funcionó no.

  1. Copié el archivo del sitio a C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. Ejecutar en el símbolo del sistema C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. Reinicie el IIS.

  4. Probó el sitio y funciona sin ningún error.

Gracias de nuevo por los comentarios

Una actualización para la respuesta nullptr.

Intenté hoy para descargar el KB2600088 de Microsoft. Después de recibir el enlace por correo electrónico, hice clic en él y luego me condujo a la página que dice que ya no está disponible.

Pruebe esto: http://support.microsoft.com/kb/2600217

Ese enlace es un reemplazo para KB2600088 y KB2628838.

MIcrosoft .Net Framework 4.5 también está disponible ahora.

Instalé los diversos parches que todos mencionan y por alguna razón el problema no se resolvió.

Instalado .NET Framework 4.5 completo y el problema desapareció.

No tiene que actualizar ningún proyecto para apuntar a 4.5. Simplemente instálalo en el servidor.