2009-02-28 6 views
7

Sto scrivendo un'app di asp.net che ha memorizzato un oggetto nella cache. Quando la pagina viene caricata per la prima volta, controlla la cache per l'oggetto, se è presente, utilizzerà l'oggetto. se l'oggetto non esiste, lo ricostruirà e lo memorizzerà nella cache. dal momento che più utenti possono utilizzare questa app allo stesso tempo, stavo cercando di memorizzare l'oggetto nella cache con la chiave della cache come SessionID. Bene, ho notato che quando la pagina postback, il sessionID cambia, quindi ho bisogno di utilizzare una chiave univoca diversa. Eventuali suggerimenti? Stavo pensando di utilizzare l'ID utente della persona che ha effettuato l'accesso, ma anche questo non è univoco, poiché è possibile accedere con lo stesso ID più volte.sessionid di asp.net che cambia sui postback?

risposta

0

L'ID di sessione non deve essere modificato sui postback. È usato da asp.net per fare una cosa simile. Puoi fornire maggiori informazioni sullo scenario? che tipo di dati, perché/quando stai cercando di "cache"

Aggiornamento 1: Per quanto riguarda la modifica di ogni post, hai disabilitato i cookie? quale versione di asp.net stai usando?

10

Credo di aver appena trovato la mia risposta da MSDN (questo è un cambiamento a 2.0,3.5):

"Quando si utilizza basato sui cookie lo stato della sessione, ASP.NET non alloca memoria per i dati di sessione fino a quando la sessione viene utilizzato un oggetto. Di conseguenza, viene generato un nuovo ID di sessione per ogni richiesta di pagina finché non si accede all'oggetto di sessione.Se l'applicazione richiede un ID sessione statico per l'intera sessione, è possibile implementare il metodo Session_Start nel Global dell'applicazione. asa archiviare e archiviare i dati nell'oggetto Session per correggere l'ID di sessione oppure è possibile utilizzare il codice in un'altra parte dell'applicazione per archiviare in modo esplicito i dati nell'oggetto Session. "

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