Variabili di sessione

giovedì 06 marzo 2014 - 09.27
Tag Elenco Tags  C#  |  Visual Studio 2010

paolo973 Profilo | Senior Member

Come intercettare l'uscita da una pagina.aspx, senza usare un tasto di logout,
ed azzerare le variabili di sessione?

ridaria Profilo | Expert

se usi i cookie puoi, mettere la idSession nel cookie, ed imposti la scadenza del cookie con expired data a -1, così facendo, i cookie vengono cancellati alla chiusura del browser, pertanto, se non c'è cokie, vuol dire che è una nuova sessione e rigeneri e risetti il tutto.

Io gestisco così diverse web application.

Adesso te ne ho parlato con una certa fretta, ma se vorrai potremmo approfondire.

Ciao
Riccardo D'Aria

paolo973 Profilo | Senior Member

puoi farmi un esempio?

ridaria Profilo | Expert

ok:

'crea il cookie
Response.Cookies.Add(Generale.setCookieUtente("Username", Session("ID_SESSIONE"), "U", idUtente, nomeCognome))

Public Function setCookieUtente(ByVal pUsername As String, ByVal pSessionID As String, ByVal pTipoUtente As String, ByVal idUtente As String, ByVal nomeCognome As String) As HttpCookie


Dim acookye As New HttpCookie("NOMEKOOKIE")
acookye.Values("oraCreazione") = Date.Now
acookye.Values("username") = pUsername
acookye.Values("sessionID") = pSessionID
acookye.Values("tipoUtente") = pTipoUtente
acookye.Values("id") = idUtente
acookye.Values("nomeCognome") = nomeCognome

Return acookye

End Function


Response.Cookies.Add il metodo add della classe http cookie ti serve per generare il cookie che viene generato dalla funzione:

setCookieUtente a cui passi i parametri che vedi di cui a te interessano:

acookye.Values("oraCreazione") = Date.Now
acookye.Values("sessionID") = pSessionID

pSessionID contiene l'ID di sessione!!!!

come vedi non c'è la expiration date del cookie, cio comporta che il cookie viene eliminato alla chiusura del browser, e quindi ciò che interessa a te!

Se il browser viene chiuso il kookie sparisce, ad una nuova sessione, verifichi se la sessionId generata da aspNet, coincide con quella del cookie, o anche a dire, se il kookie non c'è vuol dire che è una nuova sessione e riavvi resetti il tutto.


Chiaro?





Riccardo D'Aria

vankraster Profilo | Newbie

Scusa che mi intrometto, perché non memorizzare nella sessione la SessionID così puoi fare il confronto ogni volta con la sessione senza usare i cookie ?

ridaria Profilo | Expert

e session id con chi la confronti se session è scaduta ed la sessionID è cambiata.

:_)
Riccardo D'Aria

vankraster Profilo | Newbie

Se la sessione scade allora devi fare nuovamente login...
[Pseudocodice]

se ( session["sessionid"] ==null OPPURE session["sessionid"] != sessionID )
allora fai login
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5