2008-12-12 17 views

Respuesta

6

La respuesta a su primera pregunta es Sí, si se utilizan sesiones, y Ambos.

Una cookie es un trozo corto de texto que se transmite entre el cliente y el servidor con cada solicitud/respuesta.

IIS genera una identificación de sesión, la guarda y cualquier dato asociado, y la pasa en una cookie al cliente (navegador).

Cuando el cliente realiza otra solicitud, envía la cookie, que contiene el sessionID al servidor. El servidor puede mirar la cookie y encontrar la sesión (y los datos asociados) que se guardan en el servidor.

+0

¿Hay algún enlace en la red que me pueda dar más información? Quiero entender cómo se transfiere la cookie entre el cliente y el servidor. – MOZILLA

+1

Las cookies se envían en los encabezados de las solicitudes HTTP. http://en.wikipedia.org/wiki/HTTP_cookie –

2

En ASP.net, hay varios lugares para guardar la sesión, pero siempre dentro de la infraestructura del servidor.

El valor predeterminado es la memoria del proceso IIS. Esto significa que si reinicia IIS (o toda la PC) o incluso solo el grupo de aplicaciones dentro de IIS, todas las sesiones se eliminan y los datos de la sesión se pierden para siempre. Además, si tiene MUCHAS sesiones y almacena una gran cantidad de datos en cada sesión, el proceso requerirá mucha memoria, lo que puede ser un problema. Esto se denomina Sesiones "en proceso".

La principal alternativa es una base de datos de SQL Server. De esta manera, las sesiones se mantienen incluso después de un reinicio y en realidad no importa qué tan grande sea cada sesión. La principal desventaja es la latencia agregada: la obtención de datos de una base de datos es más lenta que la solución In-Proc, por supuesto.

También hay algunos otros métodos para almacenar sesiones (incluida la opción de escribir un proveedor de sesión completamente nuevo), pero los dos más comunes son "La memoria del servidor" y "Una base de datos MS SQL".

Cuestiones relacionadas