2008-09-22 21 views
12

Si hay un conjunto de cookies para un subdominio, metric.foo.com, ¿hay alguna forma de que elimine la cookie metric.foo.com en una solicitud a www.foo.com? El navegador (al menos Firefox) parece ignorar una Set-Cookie con un dominio de metric.foo.com.¿Es posible eliminar las cookies del subdominio?

Respuesta

16

Las cookies solo son legibles por el dominio que las creó, por lo que si la cookie se creó en metric.foo.com, deberá eliminarse bajo el mismo dominio que se creó. Esto incluye subdominios.

Si tiene que eliminar una cookie de metric.foo.com, pero actualmente está ejecutando una página en www.foo.com, no podrá hacerlo.

Para hacer esto, debe cargar la página de metric.foo.com, o crear la cookie bajo foo.com para que pueda ser accesible bajo cualquier subdominio. O utilizar este:

Response.Cookies ("MyCookie") domain = ".foo.com"

... mientras que crearlo, y antes de eliminarlo..

..unprobado - debería funcionar.

5

Tuve el mismo problema con los subdominios. Por alguna razón, obtener la cookie primero de la solicitud no funcionó. En cambio, acabo de crear una nueva cookie con el mismo nombre de cookie y fecha de caducidad en el pasado. Eso funcionó perfectamente:

 
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); 
} 
Cuestiones relacionadas