2008-11-18 9 views
1

J'insère quelque chose dans le cache lorsque l'utilisateur se connecte.Supprimer du cache des données utilisateur spécifiques sur Session_End

Maintenant, je veux supprimer cela du cache lorsque la session de l'utilisateur expire. HttpContext est null .. donc je ne sais pas pour quel utilisateur la session a expiré. Comment puis-je trouver cela?

EDIT: Malheureusement, SessionID ne m'offre pas beaucoup. Ce que je fais dans ce cas particulier utilise un HttpModule qui gère AuthorizeRequest pour insérer le nom d'utilisateur courant dans le cache pour s'assurer qu'un autre utilisateur d'une autre machine ne peut pas se connecter. Mais la Session est nulle dans le HttpModule. Donc je ne peux pas utiliser ça. D'autres suggestions ?

Répondre

1

Gérez l'événement Session_End dans votre global.asax. Ici, vous devriez avoir accès au SessionID.

1

En supposant que vous accédez à l'élément mis en cache sur chaque page, vous pouvez définir l'élément mis en cache pour avoir une expiration coulissante. Définissez l'heure d'expiration sur la même valeur que le délai d'expiration de votre session. Avec une expiration glissante, le cache sera actualisé chaque fois que l'on accède à l'objet et sera éliminé s'il n'est pas accédé dans ce délai. Pour plus d'informations, voir http://msdn.microsoft.com/en-us/library/4y13wyk9.aspx.

Questions connexes