Domanda

Sto inserendo qualcosa nella cache quando l'utente effettua un login.

Ora voglio eliminarlo dalla cache alla scadenza della sessione dell'utente. HttpContext è nullo .. quindi non so per quale utente sia scaduta la sessione. Come posso trovare questo?

EDIT: sfortunatamente SessionID non mi offre molto. Quello che sto facendo in questo caso particolare è l'utilizzo di un HttpModule che gestisce AuthorizeRequest per inserire l'attuale UserName nella cache per garantire che un altro utente di un'altra macchina non possa accedere. Ma la sessione è nulla in HttpModule. Quindi non posso usarlo. Altri suggerimenti?

È stato utile?

Soluzione

Puoi accedere alla sessione in un HttpModule, devi solo attendere fino a quando non viene inizializzato, ovvero l'evento AcquireRequestState ( http://msdn.microsoft.com/en-au/system.web.httpapplication.acquirerequeststate.aspx )

Altri suggerimenti

Gestisci l'evento Session_End in global.asax. Qui dovresti avere accesso a SessionID.

Supponendo che si stia accedendo all'elemento memorizzato nella cache su ciascuna pagina, è possibile impostare la memorizzazione temporanea dell'elemento memorizzato nella cache. Impostare il tempo di scadenza sullo stesso del timeout della sessione. Con una scadenza scorrevole, la cache si aggiorna ogni volta che si accede all'oggetto e verrà eliminata se non si accede entro tale termine.

Vedi http://msdn.microsoft.com/en-us/ library / 4y13wyk9.aspx per ulteriori informazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top