Condividi tramite


Procedura: scrivere un cookie

Aggiornamento: novembre 2007

Nelle applicazioni Web, i cookie consentono di memorizzare informazioni specifiche dell'utente, come la cronologia o le preferenze dell'utente. Il cookie è un testo di piccole dimensioni che accompagna lo scambio di richieste e di risposte fra il server e il client Web. Il cookie contiene informazioni che l'applicazione Web è in grado di leggere ogni volta che l'utente visita il sito.

I cookie sono gestiti dal browser nei computer client e vengono inviati al client mediante l'oggetto HttpResponse, che espone una proprietà denominata Cookies. È necessario aggiungere a questo insieme tutti i cookie che si desidera inviare al browser mediante l'applicazione Web. Quando viene scritto un nuovo cookie, è necessario specificare Name e Value. Ciascun cookie deve avere un nome univoco, in modo che l'applicazione Web possa identificarlo quando viene inviato dal browser insieme alle successive richieste.

Esistono due modi per scrivere un cookie sul computer di un utente. È possibile impostare direttamente le proprietà del cookie nell'insieme Cookies oppure creare un'istanza dell'oggetto HttpCookie e aggiungerla all'insieme Cookies. È necessario creare i cookie prima che venga eseguito il rendering della pagina ASP.NET sul client. Ad esempio, è possibile scrivere un cookie in un gestore eventi Page_Load, ma non in un gestore eventi Page_Unload. Per ulteriori informazioni sul ciclo di vita della pagina, vedere Cenni preliminari sul ciclo di vita di una pagina ASP.NET.

Per ulteriori informazioni, vedere Cenni preliminari sui cookie ASP.NET.

  • Nella pagina ASP.NET in cui si desidera scrivere il cookie, assegnare le relative proprietà nell'insieme Cookies.

    Nell'esempio di codice riportato di seguito viene illustrato un cookie denominato UserSettings, in cui sono impostati i valori delle sottochiavi Font e Color. La data di scadenza è inoltre impostata sul giorno successivo.

    Response.Cookies("UserSettings")("Font") = "Arial"
    Response.Cookies("UserSettings")("Color") = "Blue"
    Response.Cookies("UserSettings").Expires = DateTime.Now.AddDays(1)
    
    Response.Cookies["UserSettings"]["Font"] = "Arial";
    Response.Cookies["UserSettings"]["Color"] = "Blue";
    Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
    
  1. Creare un oggetto di tipo HttpCookie e assegnargli un nome.

  2. Assegnare valori alle sottochiavi del cookie e impostare tutte le proprietà del cookie.

  3. Aggiungere il cookie all'insieme Cookies.

    Nell'esempio di codice riportato di seguito viene illustrata un'istanza dell'oggetto HttpCookie denominata myCookie, che rappresenta un cookie denominato UserSettings.

    Dim myCookie As HttpCookie = New HttpCookie("UserSettings")
    myCookie("Font") = "Arial"
    myCookie("Color") = "Blue"
    myCookie.Expires = Now.AddDays(1)
    Response.Cookies.Add(myCookie)
    
    HttpCookie myCookie = new HttpCookie("UserSettings");
    myCookie["Font"] = "Arial";
    myCookie["Color"] = "Blue";
    myCookie.Expires = DateTime.Now.AddDays(1d);
    Response.Cookies.Add(myCookie);
    

Programmazione efficiente

Per impostazione predefinita, i cookie sono condivisi da tutte le pagine di uno stesso dominio; tuttavia, è possibile limitare la presenza di cookie a determinate sottocartelle di un sito Web impostando le proprietà Path dei cookie. Per consentire il recupero di un cookie da tutte le pagine in tutte le cartelle dell'applicazione, definirne le impostazioni da una pagina della cartella principale dell'applicazione, senza impostare la proprietà Path.

Se non viene specificata una data di scadenza, il cookie non viene mantenuto nel computer dell'utente e scade allo scadere della sessione di lavoro.

I cookie possono memorizzare solamente valori di tipo String. È necessario convertire i valori non di tipo stringa prima di poterli memorizzare in un cookie. Per molti tipi di dati, è sufficiente chiamare il metodo ToString. Per ulteriori informazioni, vedere il metodo ToString per il tipo di dati che si desidera mantenere.

Sicurezza

Non memorizzare nei cookie informazioni riservate, come nomi utente o password. Per ulteriori informazioni sulla protezione dei cookie, vedere Cenni preliminari sui cookie ASP.NET.

Vedere anche

Attività

Procedura: leggere un cookie

Procedura: eliminare un cookie

Concetti

Cenni preliminari sui cookie ASP.NET

Suggerimenti di base sulla protezione delle applicazioni Web

Cenni preliminari sulla gestione dello stato ASP.NET