Question

Si un cookie est défini pour un sous-domaine, metric.foo.com, puis-je supprimer le cookie metric.foo.com lors d'une demande à l'adresse www.foo.com? Le navigateur (au moins Firefox) semble ignorer un Set-Cookie avec un domaine de metric.foo.com.

Était-ce utile?

La solution

Les cookies ne sont lisibles que par le domaine qui les a créés. Par conséquent, si le cookie a été créé sur metric.foo.com, il devra être supprimé du même domaine que celui qui a été créé. Cela inclut les sous-domaines.

Si vous devez supprimer un cookie de metric.foo.com, mais que vous exécutez actuellement une page sur www.foo.com, vous ne pourrez pas le faire.

Pour ce faire, vous devez charger la page à partir de metric.foo.com ou créer le cookie sous foo.com afin qu'il soit accessible sous n'importe quel sous-domaine. OU utilisez ceci:

Response.cookies ("mycookie"). domain = ".foo.com"

... en le créant ET avant de le supprimer.

.. non testé - devrait fonctionner.

Autres conseils

J'ai eu le même problème avec les sous-domaines. Pour une raison quelconque, obtenir le cookie en premier à partir de la demande n'a pas fonctionné. Au lieu de cela, j'ai fini par créer un nouveau cookie avec le même nom de cookie et la même date d'expiration. Cela a parfaitement fonctionné:

void DeleteSubdomainCookie(HttpResponse response, string name)
{
    HttpCookie cookie = new HttpCookie(name);
    cookie.Expires = DateTime.Now.AddMonths(-1);
    cookie.Domain = ".yourdomain.com";
    response.Cookies.Add(cookie);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top