【发布时间】:2012-12-16 12:45:57
【问题描述】:
我有 domain.com、sub1.domain.com 和 sub2.domain.com。从 sub1.domain.com 的站点,我调用一个脚本在 domain.com 上设置 cookie,如下所示
document.cookie = "KEY=Value; domain=.domain.com; path=/; expires=Thu, 01 Jan 2013 00:00:01 GMT";
我检查浏览器并查看该 cookie。看起来不错。之后我去 sub2.domain.com 修改或删除我创建的 cookie。
document.cookie = "KEY=Deleted; domain=.domain.com; path=/; expires=Thu, 01 Jan 1990 00:00:01 GMT";
但运气不好,Cookie 仍然存在,价值仍然存在。我应该怎么做才能从子域中删除根 cookie?
编辑:
为了清楚起见:我使用 citrix 单点登录在两个域上进行身份验证。我们只需要登录到 .domain.com 和 citric 将验证其余部分。但问题是它没有退出机制,所以我决定清除 cookie。当我使用浏览器插件清除它时它会起作用。但是当涉及到代码(javascript)时,它就行不通了。有谁知道这个
【问题讨论】:
-
我预见到 2 个可能的问题。第一个是您实际上看不到此 cookie 可用于
domain.com,因为它不匹配域模式(.domain.com可以匹配任何*.domain.com,包括www.domain.com,但不是domain.com没有子域)。看来,您第一次从 sub1 或 sub2 检查 cookie,而第二次从主域检查它。第二个可能的问题是您有不同的 sheme(即 http 和 https)或端口号(从问题中不清楚)。 -
我用 forefox 检查了 cookie,我看到了... .domain.com 是正确的。我不确定http或https会影响吗?
标签: javascript asp.net session cookies citrix