Comment : écrire un cookie

Mise à jour : novembre 2007

Les cookies permettent aux applications Web de stocker des informations spécifiques à l'utilisateur, comme l'historique ou les préférences utilisateur. Un cookie correspond à un petit fragment de texte qui accompagne les demandes et les réponses entre le serveur Web et le client. Il contient des informations que l'application Web peut lire chaque fois que l'utilisateur visite le site.

Le navigateur gère les cookies sur les ordinateurs clients. Les cookies sont envoyés au client à l'aide de l'objet HttpResponse, qui expose une propriété nommée Cookies. Tous les cookies que votre application Web doit envoyer au navigateur doivent être ajoutés à cette collection. Lorsque vous écrivez un nouveau cookie, vous devez spécifier Name et Value. Chaque cookie doit avoir un nom unique afin que votre application Web puisse l'identifier lorsque le navigateur l'envoie avec les demandes ultérieures.

Il existe deux façons d'écrire un cookie sur l'ordinateur d'un utilisateur. Vous pouvez soit définir directement les propriétés d'un cookie dans la collection Cookies, soit créer une instance de l'objet HttpCookie et l'ajouter à la collection Cookies. Les cookies doivent être créés avant que la page ASP.NET ne soit rendue au client. Vous pouvez par exemple écrire un cookie dans un gestionnaire d'événements Page_Load, mais pas dans un gestionnaire d'événements Page_Unload. Pour plus d'informations sur le cycle de vie de la page, consultez Vue d'ensemble du cycle de vie des pages ASP.NET.

Pour plus d'informations, consultez Vue d'ensemble des cookies ASP.NET.

  • Dans la page ASP.NET dans laquelle vous souhaitez écrire un cookie, assignez des propriétés à un cookie dans la collection Cookies.

    L'exemple de code suivant montre un cookie nommé UserSettings avec les valeurs des sous-clés Font et Color définies. Il définit également l'heure d'expiration au lendemain.

    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. Créez un objet de type HttpCookie et assignez-lui un nom.

  2. Assignez des valeurs aux sous-clés du cookie et définissez ses propriétés.

  3. Ajoutez le cookie à la collection Cookies.

    L'exemple de code suivant montre une instance de l'objet HttpCookie nommé myCookie qui représente un cookie nommé 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);
    

Programmation fiable

Par défaut, les cookies sont communs à toutes les pages d'un même domaine, mais vous pouvez les limiter à des sous-dossiers spécifiques d'un site Web en définissant leur propriété Path. Pour autoriser un cookie à être récupéré par toutes les pages de tous les dossiers de votre application, définissez-le à partir d'une page située dans le dossier racine de votre application et ne définissez pas la propriété Path.

Si vous ne spécifiez pas de limite d'expiration pour le cookie, celui-ci n'est pas rendu persistant sur l'ordinateur client et expire en même temps que la session utilisateur.

Les cookies ne peuvent stocker que des valeurs de type String. Vous devez convertir toutes les valeurs qui ne sont pas des chaînes en chaînes avant de pouvoir les stocker dans un cookie. Pour de nombreux types de données, l'appel à la méthode ToString suffit. Pour plus d'informations, consultez la méthode ToString correspondant au type de données que vous souhaitez faire persister.

Sécurité

Ne stockez pas d'informations sensibles, comme un nom d'utilisateur ou un mot de passe, dans un cookie. Pour plus d'informations sur la sécurité des cookies, consultez Vue d'ensemble des cookies ASP.NET.

Voir aussi

Tâches

Comment : lire un cookie

Comment : supprimer un cookie

Concepts

Vue d'ensemble des cookies ASP.NET

Méthodes de sécurité de base pour les applications Web

Vue d'ensemble de la gestion d'état ASP.NET