当前位置:  开发笔记 > 前端 > 正文

是否可以删除子域cookie?

如何解决《是否可以删除子域cookie?》经验,为你挑选了2个好方法。

如果有一个子域名为metric.foo.com设置了cookie,我是否有办法在请求www.foo.com上删除metric.foo.com cookie?浏览器(至少是Firefox)似乎忽略了一个域名为metric.foo.com的Set-Cookie.



1> Kolten..:

Cookie只能由创建它们的域读取,因此如果cookie是在metric.foo.com上创建的,则必须在创建它的同一域下删除它.这包括子域.

如果您需要从metric.foo.com删除cookie,但目前正在www.foo.com上运行页面,则您将无法执行此操作.

为此,您需要从metric.foo.com加载页面,或在foo.com下创建cookie,以便可以在任何子域下访问它.或者用这个:

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

...在创建它时,在删除它之前.

..untested - 应该工作.



2> Grubl3r..:

我对子域有同样的问题.出于某种原因,首先从请求中获取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);
}

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有