Pregunta

Estoy insertando algo en el caché cuando el usuario inicia sesión.

Ahora quiero eliminar eso de la memoria caché cuando caduque la sesión del usuario. HttpContext es nulo ... así que no sé para qué usuario expiró la sesión. ¿Cómo puedo encontrar esto?

EDITAR: desafortunadamente, SessionID no me ofrece mucho. Lo que estoy haciendo en este caso particular es usar un HttpModule que maneja AuthorizeRequest para insertar el nombre de usuario actual en la caché para garantizar que otro usuario de otra máquina no pueda iniciar sesión. Pero la sesión es nula en el HttpModule. Entonces no puedo usar eso. ¿Alguna otra sugerencia?

¿Fue útil?

Solución

Puede acceder a la sesión en un HttpModule, solo tiene que esperar hasta que se inicialice, es decir, el evento AcquireRequestState ( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )

Otros consejos

Controle el evento Session_End en su global.asax. Aquí debe tener acceso al SessionID.

Suponiendo que está accediendo al elemento en caché en cada página, puede configurar el elemento en caché para que tenga una caducidad deslizante. Establezca el tiempo de vencimiento igual al tiempo de espera de su sesión. Con una caducidad deslizante, la memoria caché se actualizará cada vez que se acceda al objeto y se eliminará si no se accede dentro de ese tiempo.

Ver http://msdn.microsoft.com/en-us/ library / 4y13wyk9.aspx para más información.

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