session asp.net-3.5

session - ¿Cómo funciona la sesión en asp.net?



asp.net-3.5 (2)

¿Alguien me sugiere cómo funciona realmente la sesión en asp.net? Estoy confundido en parte de la sesión y quiero saber brevemente sobre ella, así que por favor guíame


Sesión: [Almacenado en el lado del servidor]

1.Si crea la sesión significa que el servidor almacena sus datos de sesión y crea un SessionID. [Datos de sesión con SessionID almacenado en proveedor de estado en el servidor]

2. Luego, el servidor devuelve el ID de sesión al navegador del cliente.

3. Luego puede almacenar el SessionID devuelto en Cookie.

4. La próxima solicitud adjunta adjunta con SessionID puede acceder a los datos del servidor.

Nota: Sesión solo para la sesión del navegador actual y específica del usuario.


ASP.NET usa una cookie para rastrear usuarios. Cuando intenta escribir algo en la sesión por primera vez, se envía una cookie al cliente, algo así como ASP.NET_SessionId . Esta cookie es enviada por el cliente en solicitudes posteriores. Gracias a esta cookie, el servidor puede identificar al cliente y escribir / leer los datos de sesión asociados. Es importante tener en cuenta que esta cookie no es persistente (no sobreviviría a los reinicios del navegador) y se emite con la bandera HttpOnly , lo que significa que las secuencias de comandos del cliente no pueden acceder a ella.

Además de las cookies, también puede configurar ASP.NET para usar campos ocultos o anexar la identificación de la sesión a la cadena de consulta en cada solicitud.

Entonces, la idea base detrás de la sesión es que los datos reales se almacenan en algún lugar del servidor y el cliente envía una identificación en cada solicitud para que el servidor pueda saber dónde encontrar sus datos.

Por defecto hay 3 lugares donde se pueden almacenar los datos de la sesión real:

  • In-Proc: la sesión se almacena en la memoria de la aplicación (más rápido, pero si tiene varios servidores en una granja de servidores, esto no funcionará)
  • Fuera de proceso: los datos se almacenan en un servidor separado que tiene instalado el servicio de estado (los datos se almacenan en la memoria de una máquina separada, lo que significa que varios servidores web pueden funcionar en una granja de servidores web)
  • SqlServer: los datos se almacenan en SQL Server (es el más lento pero más confiable ya que los datos de la sesión se almacenan en una base de datos SQL Server y podrían ser servidos si el servidor de sesión falla, lo que no ocurre con Out-Of-Proc)
  • Implementación personalizada: gracias a la capacidad de extensión de ASP.NET puede escribir su propio proveedor de sesión y almacenar los datos donde lo desee.

Aquí hay un buen artículo en MSDN que explora el estado de sesión de ASP.NET .