是否可以删除子域cookie?
问题描述:
如果有一个为子域名设置的cookie,metric.foo.com,有没有办法让我删除metric.foo.com cookie,请求www.foo.com?浏览器(至少Firefox)似乎忽略了一个带有metric.foo.com域的Set-Cookie。是否可以删除子域cookie?
答
Cookie只能由创建它们的域读取,因此如果cookie是在metric.foo.com创建的,则必须在创建它的同一个域下删除它。这包括子域。
如果您需要从metric.foo.com中删除一个cookie,但当前正在www.foo.com上运行一个页面,您将无法做到这一点。
为了做到这一点,您需要从metric.foo.com加载页面,或者在foo.com下创建cookie,以便在任何子域下都可以访问。或使用本:
Response.cookies( “的myCookie”)域= “.foo.com中”
...创建的同时,你删除它之前。
..未经测试 - 应该可以工作。
答
我有与子域相同的问题。由于某种原因,首先从请求中获取cookie不起作用。相反,我最终创建了一个具有相同cookie名称和过期日期的新cookie。这工作完美:
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); }