问题
I am writing an asp.net app that stored an object in cache. When the page loads the first time, it checks the cache for the object, if it is there, it will use the object. if the object does not exist, it will re-build it and store it in cache. since multiple users can use this app at the same time, i was trying to store the object in cache with the cache key being the SessionID. Well, i noticed that when the page posts back, the sessionID changes, so I will need to use a different unique key. Any suggestions? I was thinking about using the userID of the person logged in, but that is not unique either, since you can login with the same id multiple times.
回答1:
The session id shouldn't be changing on postbacks. It is used by asp.net to do a similar thing. Can you provide more info on the scenario? what type of data, why/when are you trying to "cache"
Update 1: Regarding it changing on each post back, have you disabled cookies? which version of asp.net are you using?
回答2:
I think i just found my answer from MSDN (this is a change to 2.0,3.5):
"When using cookie-based session state, ASP.NET does not allocate storage for session data until the Session object is used. As a result, a new session ID is generated for each page request until the session object is accessed. If your application requires a static session ID for the entire session, you can either implement the Session_Start method in the application's Global.asax file and store data in the Session object to fix the session ID, or you can use code in another part of your application to explicitly store data in the Session object."
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.sessionid.aspx
来源:https://stackoverflow.com/questions/597387/asp-net-sessionid-changing-on-postbacks