我正在使用表单身份验证来跨* .mydomain.com处理SSO 登录后,我创建了一个非持久性cookie,其中嵌入了票证并将其设置为.mydomain.com。
然而问题是,当我访问域上的任何网站时,我发现有两个具有相同名称但具有不同域的cookie。 :
1> site1.mydomain.com [1st Forms Auth Cookie] 重复cookie
2 - ; .mydomain.com [第二次表格验证cookie]
第一个Cookie不是由我创建的。它也不安全。
退出后,我成功清除了我的第二个Cookie。
但是,第一个cookie仍然存在,对于用户来说,他似乎仍然登录到 site1 。这很开心,因为我检查是否存在具有相同名称的cookie,并且肯定第一个cookie被错误地认为是Forms Auth Cookie。我无法检查域属性,因为在请求中有关域的信息是 null 。
我的问题是如何创建第二个特定于网站的域cookie。 如果我无法避免这种情况,是否有解决方法?
更新:此错误Cookie存储的加密值会根据我在网站上发出的每个请求进行更新,而我的Auth Cookie中的加密值保持不变
答案 0 :(得分:0)
“Add方法允许cookie集合中的重复cookie。使用Set方法确保cookie集合中cookie的唯一性。”
更新我正在执行的Forms身份验证票证后:
Response.Cookies.Add(..);
因此生成了一个新的重复cookie。
要解决此问题,请执行以下操作:
Response.Cookies.Set(..);
如果你像我一样,你会期望ASP.Net用新的cookie替换旧的cookie。