我正在努力弄清楚为什么只有7个声明的ClaimsPrincipal
会从FAM产生5个FedAuth
Cookie(FedAuth1,FedAuth2,FedAuth3,FedAuth4)。
这会导致问题,因为Safari正在截断我的cookie并且我的mac用户无法登录。
任何想法,为什么我可能会遇到这个问题,或者我可以找到解决方法?
更新:正如Eugenio指出的那样设置SaveBootstrapTokens = false将cookie从5回缩到2,现在safari用户可以登录。
答案 0 :(得分:5)
这些声明包含哪些内容?声明的数量会影响令牌的大小,但它们的信息也会受到影响。 FedAuthx cookie本质上是整个令牌(更具体地说是 SessionToken ),加密和分块。
作为替代方案,您可以考虑使用WIF“会话模式”,它将令牌存储在服务器端。权衡是必须管理服务器端状态及其后果(例如,跨Web场的状态等)
<强>更新强> 您可以使用其他配置控制每个cookie的大小。最小尺寸为1000,但您无法控制Cookie的总数。
<cookieHandler requireSsl="false" mode="Chunked">
<chunkedCookieHandler chunkSize="1000"/>
</cookieHandler>
本文中提到的解决方法似乎与WIF开箱即用的“会话模式”类似。我建议使用这种方法而不是自定义方法。维托里奥的文章很好地解释了这一点:http://blogs.msdn.com/b/vbertocci/archive/2010/05/26/your-fedauth-cookies-on-a-diet-issessionmode-true.aspx
答案 1 :(得分:2)
Cookie限制是WIFI和Safari的已知问题。看看官方错误报告和解决方法,这有助于限制令牌的大小: