【问题标题】:ASP.NET Identity 2.0 Users logged out after redirect through Docusign.comASP.NET Identity 2.0 用户在通过 Docusign.com 重定向后注销
【发布时间】:2015-05-08 15:21:12
【问题描述】:

我有一个使用 Identity Framework 2.0 进行用户管理的 ASP.NET MVC5 Web 应用程序。在我们应用程序的经过身份验证的一侧,用户填写一系列表格,然后通过 Docusign 会话中的表格发送。 (Docusign Embedded Signing、powerform、url)当用户完成签名后,我已经设置了成功签名的回调 url 并拒绝签署事件。成功的签名回调位于我的应用程序区域,需要用户进行身份验证,一旦他们被重定向到我的网站,尽管他们已经注销,尽管他们在离开之前已经登录。我在我的登录和注册操作方法中将持久登录设置为 true,并在我的 cookie 上设置了滑动过期。 Fiddler 指出,当用户从 docusign 回调时,.AspNet.ApplicationCookie 的值与他们离开之前不同。

这只会在用户第一次被发送到 docusign 时发生。如果用户第二次重复该过程,当他们被 docusign 重定向并且 cookie 未更改时,他们已经登录到我的网站。

如果您有任何问题或需要澄清或代码示例,我将密切关注此线程,我很乐意提供。

【问题讨论】:

  • “Fiddler 表示 cookie 具有不同的值”听起来像是您网站的问题,与 docusign 无关。 Cookies 本地存储在客户端的浏览器中。另一个域无法访问您的 cookie。如果我是你,我会再次使用 Fiddler 来检查关于实际设置值的 Set-Cookie 标头的请求和响应。浏览器不太可能只是更改该值,我宁愿相信您以某种方式在某个地方多次设置它。

标签: asp.net-mvc-5 identity docusignapi asp.net-identity-2


【解决方案1】:

感谢 Wiktor Zychla 指出有关域和 cookie 的跨站点脚本规则。

问题在于 30x 重定向和 set-cookie。 Safari 有一个错误 - 记录在 here SO对此有疑问here

我让 Docusign 重定向回我网站的经过身份验证的区域,没有 cookie,用户没有经过身份验证,因此提示他们登录。此后的任何时候都没有发生这种情况,因为 cookie 已经设置到位。

我的解决方案是从外部重定向到公共登录页面,然后将它们重定向到预期的授权页面。 (由于cookie是在公共页面设置的,所以会传到授权页面,持久登录成功)

我也被 cookie 和域绊倒了(我重定向到 www.mysite.com 而不是 mysite.com)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    相关资源
    最近更新 更多