2009-02-28 5 views
7

J'écris une application asp.net qui a stocké un objet dans le cache. Lorsque la page est chargée la première fois, elle vérifie le cache de l'objet, si elle est présente, elle utilisera l'objet. Si l'objet n'existe pas, il le reconstruira et le stockera dans le cache. Puisque plusieurs utilisateurs peuvent utiliser cette application en même temps, j'ai essayé de stocker l'objet dans le cache avec la clé de cache étant le SessionID. Eh bien, j'ai remarqué que lorsque la page affiche, le sessionID change, donc je vais devoir utiliser une clé unique différente. Aucune suggestion? Je pensais utiliser l'userID de la personne connectée, mais ce n'est pas unique non plus, puisque vous pouvez vous connecter avec le même identifiant plusieurs fois.asp.net sessionID changeant de publication?

Répondre

0

L'ID de session ne doit pas être modifié lors des publications. Il est utilisé par asp.net pour faire une chose similaire. Pouvez-vous fournir plus d'informations sur le scénario? quel type de données, pourquoi/quand essayez-vous de "mettre en cache"

Mise à jour 1: En ce qui concerne la modification à chaque publication, avez-vous désactivé les cookies? quelle version d'asp.net utilisez-vous?

10

Je pense que je viens de trouver ma réponse de MSDN (ce qui est un changement à 2.0,3.5):

« Lorsque vous utilisez l'état de session basée sur les cookies, ASP.NET ne pas allouer le stockage des données de session jusqu'à ce que la session En conséquence, un nouvel ID de session est généré pour chaque requête de page jusqu'à ce que l'objet de session soit accédé.Si votre application requiert un ID de session statique pour la session entière, vous pouvez implémenter la méthode Session_Start dans Global de l'application. fichier asax et stocker des données dans l'objet Session pour réparer l'ID de session, ou vous pouvez utiliser le code dans une autre partie de votre application pour stocker explicitement des données dans l'objet Session. "

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

Questions connexes