【问题标题】:What does setting persistentCookiesOnPassiveRedirects to true actually do?将持久性 Cookies OnPassive Redirects 设置为 true 实际上有什么作用?
【发布时间】:2012-10-26 03:00:29
【问题描述】:

使用 WIF 时,客户端可以设置 persistentCookiesOnPassiveRedirects,默认为 false。这是提供的定义:

persistentCookiesOnPassiveRedirects:指定是否持久化 启用模块启动时发出 cookie WS-Federation 被动协议重定向。持久性 cookie 将 超过用户会话。

好吧,这听起来很清楚,但我仍然不明白,更改 true/fasle 之间的值似乎没有任何区别。它是否与在信任 same STS 提供程序的单独浏览器中打开另一个站点并使其用户不必再次登录有关?

我想一个站点和 STS 一起工作的示例将非常有助于准确解释此设置的作用。谢谢!

【问题讨论】:

  • 我猜如果您使用的是被动重定向,您会发现它有所作为。 stackoverflow.com/questions/5452488/…
  • 我正在使用被动重定向,但在到期前还没有完成测试。这是将此值设置为“真”的主要优势吗?
  • 不知道,我对 WIF 的了解和猿猴对微积分的了解一样多

标签: asp.net wif


【解决方案1】:

这意味着 WIF 发出的 FedAuth cookie 将是持久的(而不是绑定到用户会话)。如果您关闭浏览器并再次打开它,cookie 仍会发送到您的站点,并且不会发生令牌协商(您不会被重定向到 STS)。

如果为false,每次关闭浏览器再打开都会触发协商,因为没有token了。 (Cookies 是 WIF 存储安全令牌信息的地方)。

请注意,STS 本身也会发出 cookie(与您的应用程序不同)并且这些 cookie 可能是持久的,因此即使您将标志设置为 false,实际身份验证也可能不会发生第二次。

另请注意,WIF 可以选择将所需的信息存储在其他地方(服务器端)。

最后但并非最不重要的一点是,令牌可能会过期,在这种情况下,无论标志如何,都会触发协商。

【讨论】:

  • 您的评论:请注意,STS 本身也会发出 cookie(与您的应用程序不同)并且这些 cookie 可能是持久的,因此即使您设置了实际身份验证也可能不会发生第二次标记为 false。 有没有办法控制它?你写的最后一点我经历过,无法解释。
  • 如果您可以控制 STS,那么可以。 (STS 不是您的应用程序)例如 ACS 不允许它,并将始终将您的请求转发给 IdP(例如 Google)。如果您设置了“记住我”标志,那么 cookie 会保留下来,您无需重新进行身份验证。
  • 是的,STS 提供商是我的(两端都是)。 STS Token Provider 被动登录站点中的配置元素是什么?
  • 知道了。我不建议在生产中使用它:-)。但要回答你的问题:WIF 与此无关,因为 WIF 只是为了给你一个令牌。身份验证是通过其他一些机制(例如成员资格)进行的。使用 ASP.NET API 创建持久性 cookie 并完成。
  • 只是一个关于它是相当简单的模板的警告。 “真正的”STS 必须针对性能/规模、安全性、可管理性等进行测试。同样,“新项目”项目也未准备好生产。我认为主要是为了实现开发,但可能是你做了所有这些(测试等)。
猜你喜欢
  • 2011-02-05
  • 1970-01-01
  • 2012-02-21
  • 2021-05-29
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 2020-12-17
  • 2011-01-13
相关资源
最近更新 更多