Oggetto Session

L'oggetto built-in Session è talvolta indispensabile nell'ambito delle applicazioni Asp per la gestione di informazioni relative agli utenti; il suo scopo, infatti, è quello di memorizzare informazioni in un file e consentire al server Web di trasportarle in pagine diverse da quella in cui sono state inizializzate.

Iniziamo con un semplice esempio, memorizziamo in una sessione una stringa di testo, consideriamo il seguente codice:

<%@LANGUAGE = JScript%>
<%
   Session("esempio") = "Hello World!";
%>
<html>
 <head>
  <title>Oggetto Session</title>
 </head>
<body>

<%
   Response.Write(Session("esempio"));
%>

</body>
</html>

E' normale immaginare che il risultato di un simile esperimento sia la stampa a video della stringa "Hello World!". Proviamo adesso da aggiungere un link a questo codice che punti ad un'altra pagina, in cui scriveremo

<%@LANGUAGE = JScript%>
<html>
 <head>
  <title>Oggetto Session</title>
 </head>
<body>

<%
   Response.Write(Session("esempio"));
%>

</body>
</html>

Anche in questo caso, nella seconda pagina, comparirà la scritta "Hello World!".
Proviamo adesso a chiudere la pagina ed a riaprirla: probabilmente la scritta "Hello World!" sarà ancora visibile, questo perchè, probabilmente il server Web non ha ancora distrutto la sessione, conservandola in una particolare area di memoria.

Ad un riavvio del server, o del sistema, aprendo il secondo file non dovrebbe apparire nulla, oppure la scritta undefined, ciò vuol dire che la sessione è stata distrutta.

Asp offre la possibilità di distruggere la sessione manualmente; il metodo Abandon() consente di terminare all'istante la sessione, questa è la tecnica con cui vengono costruite le pagine di logout per gli utenti; la proprietà Timeout, invece, consente di specificare in minuti il tempo che dovrà trascorrere prima che la sessione venga distrutta.

Solitamente una sessione muore dopo 20 minuti di inattività dell'utente, cioè prima che venga inviata al server una nuova richiesta http.

Scrivendo

Session.Timeout = 30;

modificheremo il tempo di scadenza della sessione da 20 minuti a mezzora.


Un esempio pratico

La maniera più spicciola di mettere in pratica quanto detto è la realizzazione di una semplice area di accesso riservato... di solito il nome utente e la password vengono estratti da un database: non essendo ancora giunti a questo punto, ci limiteremo a memorizzare in delle semplici variabili una coppia di valori che serviranno ad un singolo utente a loggarsi.

Articolo: Una semplice area di accesso riservato senza DB

Autore: Luca Ruggiero