我们有一个非SSL应用程序,允许用户登录( ASP.NET forms身份验证,inproc)。
一旦通过身份验证,我们会将他们的浏览器重定向到我们无法控制的另一个网站/域上受SSL保护的外部页面。
完成后,客户端被重定向回我们的原始http web应用程序上的一个预先配置的url。
然而,客户随后被要求在我们这一方再次“重新登录”,这是不受欢迎的……
在HTTP和HTTPS之间来回转换时,表单身份验证cookie似乎被破坏了。
如何使窗体身份验证cookie保持活动状态,以便客户不必在往返过程中重新进行身份验证?
发布于 2010-08-19 21:24:27
它没有被销毁;您没有在您的域上进行身份验证,因此没有在您的域上设置cookie,因此您的域上的请求将不会包含该身份验证cookie。
这很好。如果没有发生这种情况,那么您访问过的每个域中的每个cookie都将随每个请求一起发送。这显然是1)疯狂和2)一个安全漏洞。在myotherdomain.com上的页面永远不应该看到在mydomain.com上设置cookie。
如果你使用的是第三方认证系统,比如google,facebook等,它们都会有某种回调令牌,你必须处理和设置你自己的cookie。
发布于 2012-03-27 01:45:58
考虑使用更多指定的can be found here为您的cookie设置Cookie域属性,或尝试此代码:
Response.Cookies["your_cookie_name"].Domain = "yourdomain.com";
发布于 2010-08-22 05:15:44
您正在寻找单点登录解决方案。对于你的问题来说,这可能有点夸大其词,因为你可能只想获得相同的域名。但是,如果这不是一个选项,您可能需要考虑一下:Windows Identity Foundation
https://stackoverflow.com/questions/3522164
复制相似问题