2009-02-28 11 views
7

Estoy escribiendo una aplicación asp.net que almacena un objeto en caché. Cuando la página se carga por primera vez, verifica el caché del objeto; si está allí, usará el objeto. si el objeto no existe, lo volverá a construir y lo almacenará en caché. dado que varios usuarios pueden usar esta aplicación al mismo tiempo, estaba tratando de almacenar el objeto en caché con la clave de caché que es el SessionID. Bueno, me di cuenta de que cuando la página publica, el ID de sesión cambia, así que tendré que usar una clave única diferente. ¿Alguna sugerencia? Estaba pensando en usar el ID de usuario de la persona que inició sesión, pero tampoco es único, ya que puede iniciar sesión con el mismo ID varias veces.asp.net sessionID cambiando en las devoluciones de datos?

Respuesta

0

La ID de la sesión no debería cambiar en las devoluciones. Es utilizado por asp.net para hacer algo similar. ¿Puede proporcionar más información sobre el escenario? qué tipo de datos, por qué/cuándo está tratando de "caché"

Actualización 1: En relación con el cambio en cada publicación, ¿ha desactivado las cookies? ¿Qué versión de asp.net estás usando?

10

Creo que me acabo de encontrar mi respuesta de MSDN (esto es un cambio a 2.0,3.5):

"Cuando se utiliza el estado de sesión basada en cookies, ASP.NET no asigna almacenamiento para datos de sesión hasta que la Sesión se utiliza un objeto. Como resultado, se genera una nueva ID de sesión para cada solicitud de página hasta que se acceda al objeto de sesión. Si su aplicación requiere una ID de sesión estática para toda la sesión, puede implementar el método Session_Start en Global de la aplicación. asax file y store data en el objeto Session para arreglar la ID de sesión, o puede usar código en otra parte de su aplicación para almacenar datos de manera explícita en el objeto Session. "

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx

Cuestiones relacionadas