Come si utilizzano i cookie con ASP.NET?

Utente HTML.it
chiede

Come si utilizzano i cookie con ASP.NET?

Redazione HTML.it
risponde

ASP.NET fornisce un supporto completo ai cookie. Quando si riceve una risposta dal server, i cookie sono inviati al client mediante l’oggetto Page.Response, che espone la proprietà Cookies: è necessario aggiungere a questo insieme tutti i cookie che si desidera inviare al browser. Ad esempio:

HttpCookie cookie = new HttpCookie("Utente");
cookie.Expires = DateTime.Now.AddDays(5);
cookie["ID"] = "543";
cookie["UltimaPagina"] = "news.aspx";
Response.Cookies.Add(cookie);

In questo caso viene creato un cookie di nome Utente, valido per un periodo di 5 giorni, quindi al suo interno si creano due proprietà, ID e UltimaPagina. Infine, esso viene aggiunto alla collezione Response.Cookies.

I cookie così definiti sono automaticamente inviati al server quando si effettua la richiesta di una pagina e sono accessibili attraverso la proprietà Cookies dell’oggetto Page.Request. Ad esempio, per leggere il cookie definito in precedenza si deve scrivere qualcosa del tipo:

if (Request.Cookies["Utente"] != null)
{
    HttpCookie cookie = Request.Cookies["Utente"];
    Response.Write("L'ultima pagina visitata è " + cookie["UltimaPagina"]);
}

Dapprima si controlla che il cookie Utente sia presente e, in caso positivo, da esso si estrae il contenuto della proprietà UltimaPagina.

Infine, se si vuole eliminare un cookie, poiché è impossibile cancellarlo direttamente dal computer dell’utente (sarebbe una violazione di protezione), è necessario impostare la sua scadenza (ovvero la proprietà Expires) su una data già trascorsa: così facendo, il browser rileverà che il cookie è scaduto e lo eliminerà.