Session

mercoledì 19 dicembre 2012 - 15.22
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows Server 2008  |  Visual Studio 2010  |  Javascript  |  CSS 2.1

trinity Profilo | Guru

ragazzi ho fatto un db dove registro gli utenti. nella loro pagina web personale c'è ovviamente il comando logout prima però quando effetuano il login mi carico nelle session l'id dell'utente per utilizzarlo nel progetto.
Quando eseguo come dicevo il logout io scrivo sempre questo codice:

Protected Sub Logout_Click(sender As Object, e As System.EventArgs) Handles Logout.Click Session.Clear() Session.Abandon() Page.Response.Redirect("index.aspx") End Sub

è giusto mettere sia session.clear che session.abbandon? oppure basta solo l'abbadon?

Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

ridaria Profilo | Expert

clear elimina tutti i valori tenuti nella sessione, session_id, ed eventuali variabili di sessione, ma non distrugge la sessione, cioè essa resta tale ma senza alcuna chiave/valore e non avvia la Session_End routine contenuta nel global.asax.

Abbandon invece la sega completamente, lancia Session_End e quindi solo se l'utente accede ad una nuova pagina viene avviata una nuova sessione.


A te la scelta, magari devi fare qualcosa nella Session_End e quindi conviene abbandon.


Ciao.

PS di dove sei?


Riccardo D'Aria

trinity Profilo | Guru

Grazie..

Abito vicino Latina
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

trinity Profilo | Guru

Ciao
stavo rileggendo questo post. Te mi dici che la session.abandon lancia la session_end nel file global.asax ma io nel mio progetto questo file non l'ho messo. devo crearlo? Onestamente non capisco la sua funzionalità, mi avresti qualche link che spiaga il suo utilizzo?. Da come ho capito, la session.abandon avvia un evento chiamato session_end che si trova nel file global.asax. In questo evento io potrei per esempio inserire la redirect alla home page ossia quando eseguono il logout senza scrivere per ogni pagina il response.redirect lo faccio eseguire una volta in questo file. Giusto? o sbaglio proprio concetto?

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

ridaria Profilo | Expert

>Ciao
>stavo rileggendo questo post. Te mi dici che la session.abandon
>lancia la session_end nel file global.asax ma io nel mio progetto
>questo file non l'ho messo. devo crearlo? Onestamente non capisco
>la sua funzionalità, mi avresti qualche link che spiaga il suo
>utilizzo?. Da come ho capito, la session.abandon avvia un evento
>chiamato session_end che si trova nel file global.asax. In questo
>evento io potrei per esempio inserire la redirect alla home page
>ossia quando eseguono il logout senza scrivere per ogni pagina
>il response.redirect lo faccio eseguire una volta in questo file.
>Giusto? o sbaglio proprio concetto?

Il concetto è giusto e sarebbe anche bello se si potesse fare un redirect dal file global.asax, ma essendo esso un file provo di un HTTPcontext, semplicemente non è una pagina aspx, e quindi da qui la gestione delle chiamate http tipo il redirect non si possono fare.

CIAO
>
>ciao
>Cirillo Fabio
>www.wondernet.biz
>fabio@wondernet.biz
>http://blogs.dotnethell.it/fabiocirillo/
>http://wnetsoftware.blogspot.com

Riccardo D'Aria

trinity Profilo | Guru

OK e quindi nel global che cosa ci scrivo se già nella pagina aspx scrivo il codice session.abandon e poi la redirect alla pagina principale
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

ridaria Profilo | Expert

>OK e quindi nel global che cosa ci scrivo se già nella pagina
>aspx scrivo il codice session.abandon e poi la redirect alla
>pagina principale

Se non hai cose da fare dopo la session.abbandon, non ci metti niente nella session_end del global.asax.

I redirect lo metti a seguire l'istruzione session.abbandon.


CIAO :-)

>Cirillo Fabio
>www.wondernet.biz
>fabio@wondernet.biz
>http://blogs.dotnethell.it/fabiocirillo/
>http://wnetsoftware.blogspot.com

Riccardo D'Aria

trinity Profilo | Guru

OK capito,
ma solo una curiosità dopo il kill della session che cosa si potrebbe fare in una session_end dato che le redirect avvengono fuori dal global.asax
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

ridaria Profilo | Expert

Cosa si può fare?

Qualunque cosa ti occorra di fare al termine della sessione. Adesso non mi viene in mente di cosa si potrebbe aver bisogno, ma di certo l'evento viene lanciato :-)

CIAO
Riccardo D'Aria
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5