2010-10-07 3 views
0

J'ai un cookie appelé "g" avec des valeurs "y" ou "n"ASP.NET: Les cookies, la valeur ne pas être remis à zéro, cookie n'étant retiré

Je l'ai mis comme ceci:

Response.Cookies("g").Value = "y" 
Response.Cookies("g").Expires = DateTime.Now.AddHours(1) 

Je change comme ceci:

Request.Cookies("g").Value = "n" 

et je tente de le détruire comme ça

Response.Cookies("g").Expires = DateTime.Now.AddHours(-1) 

Le cookie est réglé correctement, mais je ne peux pas changer sa valeur ou le détruire

Merci!

Répondre

4

Essayez de supprimer cette façon:

if (Request.Cookies["g"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("g"); 
    myCookie.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(myCookie); 
} 

Je pense que si vous essayez de créer le cookie et l'ajouter à la réponse comme cela, il devrait fonctionner.

Vous souhaitez ajouter un nouveau cookie à la réponse portant le même nom. Aussi, je recommande d'y retourner un jour et pas seulement une heure.

Pour modifier la valeur du cookie faire:

if (Request.Cookies["g"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("g"); 
    myCookie.Expires = DateTime.Now.AddHours(1); 
    myCookie.Value = "n"; 
    Response.Cookies.Add(myCookie); 
} 

La chose importante à noter ces exemples est que nous observons la collecte de la demande en lecture seule pour voir ce qui est déjà là-bas, puis nous apportons des modifications ou des suppressions en ajoutant un nouveau cookie pour remplacer celui qui existait auparavant.

+0

merci, cela fonctionne bien pour le réglage du cookie, mais pas pour le détruire – user455100

+0

Notez que je définis la date d'expiration dans le passé. Cela fonctionnera pour la suppression du cookie. –

+0

Oh Ok, ça va marcher. – user455100

1

Vous ne pouvez pas modifier le cookie de demande, vous ne pouvez le "re-définir" dans votre réponse. Par conséquent, vous devez définir le même cookie dans votre réponse.

Cependant, l'astérisque d'expiration devrait fonctionner, mais parfois l'heure d'été (DST) peut perturber le navigateur. Avez-vous essayé d'utiliser un très vieux DateTime (comme, 1970) afin d'expirer le cookie?

Questions connexes