|
ASP: la guida introduttiva
Capitolo 18 - Gestione dei cookie
18.0 Cookie
18.1 Invio
di un cookie
18.2 Recupero
di un cookie
18.3 Rimozione
di un cookie
18.0 - Cookie
Un
cookie (biscotto) è un pacchetto di
dati inviato al browser dal Web server, che viene conservato
sull'hard disk del visitatore, per essere poi restituito al
mittente nel corso degli accessi successivi. Nonostante siano
stati a lungo al centro di una controversa polemica, che li
accusava di minare la privacy degli utenti, i cookie sono utili
ed indispensabili per il funzionamento di numerose applicazioni
Web. E' anche vero, comunque, che alcuni programmi di
affiliazione utilizzano i cookie, con la complicità di diversi
siti, per carpire i gusti dell'utente, in modo tale da
effettuare campagne pubblicitarie mirate. I browser moderni
pongono un freno al problema, riportando finalmente i cookie al
loro ruolo originario.
Ciascun cookie è formato da un insieme di sei differenti valori:
Nome, il nome del cookie.
Dati, i dati conservati nel cookie.
Expires, la data di scadenza del cookie.
Domain, il dominio a cui il cookie si riferisce.
Path, il percorso a cui il cookie si riferisce.
Secure, può essere true/false, ed indica se il cookie
debba essere ritenuto sicuro.
18.1 - Invio di un cookie
Il
campo Response.Cookies permette di
inviare un cookie al browser di un visitatore:
Response.Cookies("CookieProva")("DATO1")
= "prova1";
Response.Cookies("CookieProva")("DATO2")
= "prova2";
Possono essere inoltre specificate le seguenti quattro
proprietà:
Response.Cookies("NomeCookie").Expires,
indica la data di scadenza del cookie. Se omessa, il cookie sarà
di tipo temporaneo.
Response.Cookies("NomeCookie").Domain,indica
il dominio di riferimento. Il dominio deve essere espresso come
stringa. Se omessa, il dominio di riferimento sarà lo stesso
dell'applicazione.
Response.Cookies("NomeCookie").Path,
indica il percorso di riferimento. Il percorso deve essere
espresso come stringa, a partire dalla root del sito (ad esempio
"/cartella/sottocartella"). Se omessa, il percorso di
riferimento sarà la radice del sito ("/").
Response.Cookies("NomeCookie").Secure,
indica se il cookie è sicuro o meno. La condizione viene
espressa con un semplice valore booleano true/false. Se omessa,
il cookie sarà non sicuro.
In
questa forma, la data di scadenza del cookie può essere
impostata facendo riferimento ad un oggetto
Date di JScript. Per far scadere "CookieProva"
nel Natale del 2010 bisogna scrivere:
var d = new Date(2010,11,25);
Response.Cookies("CookieProva").Expires = d.getVarDate();
Si
ricorda che, con JScript, il conteggio dei mesi comincia da
zero, che equivale a Gennaio, mentre undici è Dicembre.
Un cookie già esistente può essere aggiornato semplicemente
effettuando una sovrascrizione, come se lo si stesse creando per
la prima volta.
18.2 - Recupero di un cookie
La
collezione Request.Cookies permette
il recupero dei cookie precedentemente inviati al browser, senza
doversi curare della loro forma nell'intestazione HTTP ricevuta.
Il recupero di un dato è immediato:
var variabile = Request.Cookies("NomeCookie")("NomeDato");
Se
il dato richiesto non esiste, il valore restituito è
null. Ecco un esempio di recupero
con verifica condizionale sull'esistenza:
var mioCookie = Request.Cookies("CookieProva")("DATO1");
if (mioCookie==null) {
Response.Write("CookieProva.DATO1 non esiste!");
} else {
Response.Write("CookieProva.DATO1 esiste e vale: " + mioCookie);
}
18.3 - Rimozione di un cookie
Si
può comandare la rimozione di un cookie semplicemente impostando
la sua data di scadenza su un momento già trascorso, ad esempio
quello di elaborazione della pagina:
var d = new Date();
Response.Cookies("NomeCookie").Expires = d.getVarDate(); |