Tengo un sitio ASP.NET 2.0 que almacena una ID de usuario en sesión para indicar que está conectado. En algunas situaciones, el usuario no parece estar conectado. I han estado monitoreando el tráfico en Fiddler, y algunos detalles que he encontrado:Cookie de sesión de ASP.net perdida o eliminada
- el problema es 100% repetible en una vieja computadora portátil de la mina cuando se ejecuta Internet Explorer 7 y el ordenador portátil del jefe de proyecto cuando se ejecuta Internet Explorer 7. El problema nunca ocurre en mi laptop actual con IE7, o cualquiera de estas laptops cuando ejecuto FF.
- El problema ocurre solo en la producción, no en el desarrollo, la organización interna o la organización del cliente. La producción es el único entorno de equilibrio de carga, pero la repetibilidad mencionada anteriormente me hace cuestionar el equilibrio de carga como un factor.
- Cuando la página que establece Session ("ID") = 1 envía una respuesta al cliente, puedo ver un encabezado "Set-Cookie" en todos los casos, que está creando la cookie ASP.Net_Session_Id (y es HttpOnly)
- Las solicitudes subsiguientes al servidor enviarán esa cookie en el encabezado de las máquinas que no muestran el problema, pero no en las máquinas que están, por lo que la cookie se borrará o se ignorará el encabezado "Set-Cookie".
- La manera de iniciar sesión funciona de la siguiente manera: una página en www.DomainX.com tiene un iframe. La fuente de ese iframe es una página en login.DomainY.com. Una variedad de páginas servidas desde login.DomainY.com lleva al usuario a través del proceso de inicio de sesión/registro. El paso final de login.DomainY.com es redireccionar a una página anterior en www.DomainX.com, incluida la identificación del usuario en la cadena de consulta. Esta página en www.DomainX.com normalmente almacena el ID en la sesión y luego ejecuta algunos JS para redirigir el documento de nivel superior a una página nueva, sacando así al usuario del iframe. Este es un proceso que ha funcionado durante varios años, con varios valores de DomainX.com. La única cosa que puede ser diferente aquí es que en este caso, el JS simplemente está destruyendo el iframe y algunos contienen div's.
- Otra diferencia que veo entre los escenarios donde ocurre el problema y donde no está es en las cookies de Google Analytics. Hay una diferencia cuando login.DomainY.com/FinalStep.aspx hace que se redirija a www.DomainX.com/SaveTheID.aspx dentro del iframe. Cuando el problema no ocurre, la solicitud de SaveTheID.aspx incluye una variedad de cookies de Google Analytics (__utma, __utmz, etc.). Cuando se produce el problema, esta solicitud no incluye todas las cookies de GA (faltan __utma, __utmz y __utmb).
- La producción es el único entorno donde login.DomainY.com se ejecuta bajo SSL, por lo que pensé que podría estar relacionado. Pero establecimos temporalmente nuestra copia provisional de login.DomainY.com para usar SSL, y eso no tuvo ningún efecto.
¿Alguna idea de qué podría causar esto?
Editar: el entorno de producción tiene dominios de www.DomainX.com y DomainX.com. Hay otro problema conocido con las cookies que no se establecen para ambos dominios. Es posible que esto esté relacionado, pero no podré probar hasta que ese arreglo vaya a prod.
¿Has mirado en el tráfico de red con Fiddler - http://www.fiddler2.com/ - es una gran herramienta para ver qué tráfico se envía entre un servidor y el navegador, incluidas las cookies, etc., y se puede configurar para descifrar el tráfico HTTPS. –
Sí, he estado haciendo eso; Fiddler es mi principal fuente de información por lo que sé en este momento. Gracias, sin embargo. – Joel