2009-07-27 3 views
0

a eu un problème étrange pour vous.Un cookie n'est pas activé lorsqu'une tentative de lecture est effectuée?

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 d'écriture de 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 à partir de 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 mes cookies lecture:

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 prises et dupliquées plusieurs fois:

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

Une fois que je charge la deuxième page, qui devrait cracher sur l'ID que je réglé plus tôt, le cookie existe toujours mais il n'est pas mis.

Voici une capture d'écran du cookie après que je charge la première page:

alt text

Et une fois que je charge la deuxième page:

alt text

D'après ce que je vois , la valeur/l'expiration du cookie est supprimée lorsque je charge la deuxième page. Quelqu'un at-il des idées sur la raison pour laquelle cela se produit?

Merci

Répondre

3

Au meilleur de ma connaissance, vous devriez être en train de récupérer les cookies à l'aide de l'objet de demande, pas l'objet Response.

+2

lol j'aurais dû voir ça ... merci: D – Anders

Questions connexes