【发布时间】:2018-02-15 05:37:20
【问题描述】:
我正在使用表单身份验证来处理跨 *.mydomain.com 的 SSO 登录后,我创建了一个嵌入票证的非持久性 cookie,并将其域设置为 .mydomain.com。
但问题是,当我访问域中的任何网站时,我发现有两个同名但域不同的 cookie。 :
1> site1.mydomain.com [1st Forms Auth Cookie] 重复的 cookie
2> .mydomain.com[2nd Forms Auth cookie]
第一个 Cookie 不是我创建的。它也不安全。
注销后,我成功清除了我的第二个 Cookie。
但是,第一个 cookie 仍然存在,对于用户来说,他似乎仍然登录到 site1 。发生这种情况是因为我检查是否存在同名的 cookie,并且肯定第一个 cookie 被错误地假定为 Forms Auth cookie。我无法检查域属性,因为在请求中有关域的信息是 null 。
我的问题是如何创建第二个特定于网站的域 cookie。 如果我无法避免这种情况,是否有解决方法?
更新:这个错误cookie存储的加密值在我在网站上发出的每个请求时都会更新,而我的Auth Cookie中的加密值保持不变
【问题讨论】:
标签: c# asp.net cookies forms-authentication global-asax