【问题标题】:Forms Authentication SSO Logout Issue due to duplicate cookie由于重复 cookie 导致的表单身份验证 SSO 注销问题
【发布时间】: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


    【解决方案1】:

    根据MSFT Docs

    “Add方法允许cookie集合中有重复的cookie。使用Set方法保证cookie集合中cookie的唯一性。”

    更新我的表单身份验证票后,我正在做:

    Response.Cookies.Add(..);
    

    因此生成了一个新的重复 cookie。

    要解决这个问题:

    Response.Cookies.Set(..); 
    

    如果你和我一样,你会期望 ASP.Net 用新的 cookie 替换旧的 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      相关资源
      最近更新 更多