0 votes

Le cookie est désactivé lorsqu'une tentative de lecture est effectuée ?

J'ai un problème étrange pour vous.

J'ai créé un contrôle qui insère un enregistrement dans une base de données et écrit un cookie sur la machine de l'utilisateur. Voici l'extrait de code qui écrit le cookie :

protected void CreateCookie(Guid id, DateTime expires)
{
    var oCookie = new HttpCookie("gsow");

    oCookie.Value = id.ToString();
    oCookie.Expires = expires;

    HttpContext.Current.Response.Cookies.Add(oCookie);
}

Très simple, rien d'extraordinaire. L'ID est transmis par la fonction qui écrit l'entrée dans la base de données et cet ID est généré à la volée. Maintenant, voici le code pour ma lecture de cookie :

protected void Page_Load(object sender, EventArgs e)
{

    var oCookie = HttpContext.Current.Response.Cookies["gsow"];

    output.Text = "I am Here<br />";

    if (oCookie != null)
        output.Text += oCookie.Value;
    else
        output2.Text = "No Cookie.";
}

Encore une fois, très simple. Voici les étapes que j'ai suivies et dupliquées plusieurs fois :

  1. Créer une entrée cookie/db en lançant la première page.
  2. Vérifiez que l'entrée cookie/db existe (elle existe à cette étape, vérifiée via le gestionnaire de cookies de Chrome).
  3. Lancer la deuxième page

Une fois que j'ai chargé la deuxième page, qui devrait afficher l'ID que j'ai défini précédemment, le cookie existe toujours mais il est désactivé.

Voici une capture d'écran du cookie après le chargement de la première page :

alt text

Et une fois que j'ai chargé la deuxième page :

alt text

Donc, d'après ce que je vois, la valeur/expiration du cookie est supprimée lorsque je charge la deuxième page. Quelqu'un a-t-il une idée de la raison pour laquelle cela se produit ?

Gracias

3voto

JustLoren Points 2682

Pour autant que je sache, vous devriez récupérer les cookies en utilisant l'objet Request, et non l'objet Response.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X