La sessione è utilizzata per memorizzare informazioni sulla sessione utente.
Le variabili memorizzate nell'oggetto Session tengono informazioni su un
singolo utente, e sono disponibili a tutte le pagine dell'applicazione.
Sessioni
HTTP è un protocollo stateless,senza stato, non mantiene cioè informazioni su ciò che avviene quando navighiamo.
Se vogliamo creare delle pagine che "ricordino" delle informazione, dobbiamo memorizzarle da qualche parte. Un modo per farlo è utilizzare le sessioni.
Le sessioni utilizzano i cookie per memorizzare le informazioni, ma lo fanno in modo trasparente al programmatore.
L'oggetto Session è utilizzato per memorizzare o cambiare le informazioni
circa la sessione di un singolo utente. Le variabili memorizzate nell'oggetto
Session hanno delle informazioni sul singolo utente e sono disponibili per tutte
le pagine dell'applicazione.
Timeout della sessione
Una sessione termina se un utente non ha richiesto pagine o fatto il refresh
in una pagina dell'applicazione per un determinato lasso di tempo. Di default
questo tempo è 20 minuti.
Se si vuole cambiare l'intervallo di dafault, occorre impostare la proprità Timeout.
<%
Session.Timeout=60
%>
Per terminare una sessione immediatamente si può utilizzate il metodo
Abandon:
<%
Session.Abandon
%>
Scrivere e leggere le variabili di sessione
L'esempio in basso spiega come memorizzare delle variabili di sessione.
Imposteremo la variabile di sessione username a "Donald Duck" e la
variabile age a "50":
La collezione Contents contiene tutte le variabili di sessione. Supponiamo ad esempio di voler fare un logout e pulire la sessione
<%
Sub logout()
Session("username") = ""
Session("password") = ""
End
Sub
%>
Per rimuovere tutte le variabili di sessione si può utilizzare il metodo
RemoveAll:
<%
Sub logout()
Session.Contents.RemoveAll()
End Sub
%>
Potremmo anche utilizzare il metodo session.abandon per fare il logout.
Ciclare il contenuto della collezione Contents
La collezione Contents contiene tutte le variabili di sessione. Si può ciclarne
il contenuto per vedere cosa c'è memorizzato:
<%
Session("username")="morphX"
Session("password")="SJj8saD"
dim
counter
For Each counter in Session.Contents
Response.Write(counter & "<br />")
Next
%>
Risultato:
Se non conosciamo il numero di elementi nella collection, possiamo utilizzare la proprietà Count:
<%
dim prop
Response.Write("Variabili di sessione: " & Session.Contents.Count)
For
prop=1 toSession.Contents.Count
Response.Write(Session.Contents(prop) & "<br />")
Next
%>