如果为子域 metric.foo.com 设置了 cookie,我有没有办法在请求 www.foo.com 时删除 metric.foo.com cookie?浏览器(至少是 Firefox)似乎忽略了域为 metric.foo.com 的 Set-Cookie。
dcmanges
问问题
19582 次
2 回答
21
Cookie 只能由创建它们的域读取,因此如果 cookie 是在 metric.foo.com 创建的,则必须在创建它的同一域下将其删除。这包括子域。
如果您需要从 metric.foo.com 删除 cookie,但当前正在 www.foo.com 上运行页面,则您将无法删除。
为此,您需要从 metric.foo.com 加载页面,或者在 foo.com 下创建 cookie,以便可以在任何子域下访问它。或者使用这个:
Response.cookies("mycookie").domain = ".foo.com"
...在创建它的同时,在你删除它之前。
..未经测试 - 应该工作。
于 2008-09-22T20:21:14.737 回答
7
我对子域有同样的问题。由于某种原因,首先从请求中获取 cookie 不起作用。相反,我最终只是创建了一个具有相同 cookie 名称和过期日期的新 cookie。效果很好:
void DeleteSubdomainCookie(HttpResponse 响应,字符串名称) { HttpCookie cookie = 新的 HttpCookie(名称); cookie.Expires = DateTime.Now.AddMonths(-1); cookie.Domain = ".yourdomain.com"; response.Cookies.Add(cookie); }
于 2009-02-27T18:18:44.663 回答