Pregunta

Espero que alguien pueda aclarar este comportamiento para mí y explicar cómo ASP.NET está decidiendo cuándo tratar algo como una nueva sesión.

A) En Internet Explorer, cargo el sitio ASP.NET en cuestión. Comienza una nueva sesión.
B) Si voy al menú Archivo - Nueva ventana ... permanece dentro de la misma sesión.
C) Si inicio una nueva instancia de Internet Explorer y cargo la misma página, se inicia una nueva sesión.

Estoy confundido con el paso C. Espero que sea la misma sesión basada en mi IP remota.
¿Qué está haciendo IIS / ASP.NET para decidir que esta es una nueva sesión? ¿Está mirando mi puerto remoto que está utilizando la nueva instancia de IE? Cuando abre una nueva ventana con Archivo - Nuevo, usa el mismo puerto remoto que el padre.

¿Fue útil?

Solución

Las sesiones en IIS / ASP.NET se basan en cookies con un alcance de sesión, lo que significa que se destruyen cuando se cierra el navegador, y aparentemente no se comparten dentro de diferentes procesos de Internet Explorer.

Cuando abre una nueva ventana del navegador con Archivo > Nueva ventana la ventana será manejada por el mismo proceso que el primero (es decir, el mismo iexplorer.exe). Cuando inicias IE desde el menú de inicio, obtienes un nuevo proceso, y ahora tendrás dos iexplorer.exe en el Administrador de tareas. Creo que solo IE 7 generará múltiples procesos.

Como nota al margen, IE 8 tendrá un solo proceso por pestaña / ventana, como Google Chrome. No sé si estos navegadores comparten cookies de sesión entre los procesos, pero sin duda es algo a tener en cuenta al probar con uno de estos navegadores.

Otros consejos

Por defecto, ASP.NET rastrea las sesiones a través de cookies. Una nueva instancia de IE no tiene la cookie de sesión, lo que resulta en una nueva sesión. Sin embargo, usando Archivo - > Nueva ventana desde una ventana IE existente creará una nueva ventana con las mismas cookies que el "padre", permitiendo que ASP.NET use la sesión existente.

Me pregunto si la nueva instancia de IE tendría las mismas cookies que suceden en el caso B, mientras que si bien es una nueva ventana, está utilizando el mismo proceso. Por lo general, es en la cookie o en la cadena de consulta que hay un valor utilizado para asignar sesiones a varios clientes.

Parece que los datos de la sesión se almacenan en caché por proceso. A) y B) existen en el mismo proceso, mientras que el lanzamiento de una nueva instancia de IE creará un nuevo proceso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top