L'oggetto Session ci permette di memorizzare valori per la sessione corrente. Quindi, memorizzando un determinato valore nell'oggetto, sarà rintracciabile per tutta la durata della sessione. Una volta che l'utente sarà uscito dal nostro sito, queste informazioni verranno perse (con l'oggetto Session), ma per tutta la navigazione all'interno del nostro sito, saranno disponibili.
Ecco come memorizzare un valore all'interno dell'oggetto:
<%
Session("testo") = "Questo è un testo"
Session("numero") = 7
%>
In pratica, l'oggetto Session ha la funzionalità di un cookie di memorizzare informazioni durante la navigazione del sito, ma non è possibile utilizzarlo nel lungo periodo (non è possibile impostarne una scadenza lunga, solo alla fine della sessione esso viene scaricato). Attenzione però! Questo oggetto è disponibile solo sui browser che supportano i cookies.
Vediamo quali sono le proprietà, metodi ed eventi più importanti per Session.
La proprietà .LCID ci permette di gestire impostazioni internazionali personalizzate per la sessione corrente (in questo modo è possibile evitare di configurare tali impostazioni direttamente dal server). Ecco un esempio:
<%
'Imposto il formato inglese
Session.LCID = 2057
'Visualizzo nel formato inglese, la data odierna
Reponse.Write(formatDateTime(Date(), vbShortDate))
%>
La proprietà .SessionID ci permette di venire a conoscenza del numero univoco di sessione per la sessione corrente. Sarà quindi possibile effettuare controlli su questo valore per evitare problemi di sicurezza.
<%= "Il tuo numero di sessione: " & Session.SessionID %>
La proprietà .TimeOut specifica il tempo di timeout, in minuti, entro il quale la sessione deve scadere. Impostando, per esempio:
<% Session.TimeOut = 10 %>
dopo 10 minuti, se non c'è risposta da parte dell'utente (non naviga più all'interno del sito), la sessione scade.
Il metodo .Abandon elimina tutte le variabili di sessione. Questo però avviene solo dopo aver eseguito lo script. Sarà quindi possibile richiamare ancora le variabili di sessione nella stessa pagina ove presente il metodo.
Per eliminare un variabile di sessione, si utilizza questa sintassi:
<% Session.Contents.Remove( nomeVariabile/indice ) %>
È possibile specificare direttamente il nome della variabile da eliminare, oppure l'indice di riferimento. Indicando l'indice ovviamente, il server eliminerà la voce corrispondente dall'inizio dell'insieme Session.