我有一个ASP.NET MVC5 Web应用程序,它使用Identity Framework 2.0进行用户管理。在我们的应用程序的经过身份验证的一侧,用户填写一系列表单,然后通过Docusign会话中的powerform发送。 (Docusign Embedded Signing,powerform,url)当用户完成签名后,我已设置回调网址以便成功签名,并拒绝签署活动。成功的签名回调位于我的应用程序区域,需要用户进行身份验证,一旦他们被注销后被重定向到我的站点,尽管他们在离开之前已登录。我在登录和注册操作方法中将持久登录设置为true,以及在我的cookie上设置滑动过期。 Fiddler表示当从docusign回调用户时,.AspNet.ApplicationCookie的值与他们离开之前的值不同。
这仅在用户第一次发送到docusign时发生。如果用户第二次重复该过程,则当他们被docusign重定向并且cookie未被改变时,他们已经登录到我的站点。
如果您有任何问题或需要澄清或代码示例我将很乐意提供,我将密切关注此主题。
答案 0 :(得分:1)
感谢Wiktor Zychla指出有关域名和Cookie的跨网站脚本规则。
问题在于30x重定向和set-cookie。 Safari有一个错误 - 记录here 和SO有关于它的问题here
我让Docusign重定向回到我网站的经过身份验证的区域,没有用户未经过身份验证的Cookie,系统会提示他们登录。由于cookie已经设置到位,所以此后不会发生这种情况。
我的解决方案是从外部重定向到公共目标网页,然后将其重定向到预期的授权页面。 (由于cookie是在公共页面上设置的,它们会被传递到授权页面,并且持久登录成功)
我也被绊倒了cookie和域名(我被重定向到www.mysite.com而不是mysite.com)