2009-02-28 11 views
7

Ich schreibe eine asp.net App, die ein Objekt im Cache gespeichert. Wenn die Seite das erste Mal geladen wird, überprüft sie den Cache für das Objekt, wenn es dort ist, wird es das Objekt verwenden. Wenn das Objekt nicht existiert, baut es es neu auf und speichert es im Cache. Da mehrere Benutzer diese App gleichzeitig verwenden können, habe ich versucht, das Objekt im Cache zu speichern, wobei der Cacheschlüssel die SessionID ist. Nun, ich habe bemerkt, dass sich die Sitzungs-ID ändert, wenn die Seite zurückbucht, also muss ich einen anderen eindeutigen Schlüssel verwenden. Irgendwelche Vorschläge? Ich habe darüber nachgedacht, die Benutzer-ID der angemeldeten Person zu verwenden, aber das ist auch nicht eindeutig, da Sie sich mit derselben ID mehrmals anmelden können.asp.net SessionID Postbacks ändern?

Antwort

0

Die Sitzungs-ID sollte sich bei Postbacks nicht ändern. Es wird von asp.net verwendet, um eine ähnliche Sache zu tun. Können Sie weitere Informationen zum Szenario bereitstellen? Welche Art von Daten, warum/wann versuchen Sie zu "cachen"

Update 1: In Bezug auf die Änderung auf jedem Post zurück, haben Sie Cookies deaktiviert? Welche Version von asp.net verwendest du?

10

Ich glaube, ich meine Antwort nur von MSDN (dies ist eine Änderung 2.0,3.5):

„Wenn Cookie-basierte Sitzungsstatus verwenden, ASP.NET zuordnet nicht Speicher für Sitzungsdaten, bis die Session Daher wird eine neue Sitzungs-ID für jede Seitenanforderung generiert, bis auf das Sitzungsobjekt zugegriffen wird.Wenn Ihre Anwendung eine statische Sitzungs-ID für die gesamte Sitzung benötigt, können Sie entweder die Session_Start-Methode im Global der Anwendung implementieren. asax-Datei und speichern Sie Daten im Session-Objekt, um die Sitzungs-ID zu korrigieren, oder Sie können Code in einem anderen Teil Ihrer Anwendung verwenden, um explizit Daten im Session-Objekt zu speichern. "

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

Verwandte Themen