如何保留ASP.NET Forms身份验证cookie的身份验证,Http到Https(不同的域)和返回?

时间:2010-08-19 13:19:05

标签: asp.net ssl forms-authentication

我们有一个允许用户登录的非SSL ASP.NET Web应用程序(ASP表单身份验证,inproc)。

经过身份验证后,我们会将浏览器重定向到另一个我们无法控制的网站/域上的外部SSL安全页面。

完成后,客户端将重定向回原始http网络应用程序上的预配置网址。

然而,客户被要求再次在我们这边“重新登录”,这是不受欢迎的......

在HTTP和HTTPS之间转换时,似乎会破坏表单身份验证cookie。

如何让表单身份验证cookie保持活动状态,以便客户不必在往返时重新进行身份验证?

3 个答案:

答案 0 :(得分:1)

它没有被摧毁;您没有在您的域上进行身份验证,因此Cookie未在您的域中设置,因此您域上的请求将不包含所述身份验证Cookie。

这很好。如果没有发生这种情况,那么您访问过的每个域中的每个cookie都将随每个请求一起发送。这显然是疯狂的2)安全漏洞。在mydomain.com上设置cookie应该永远对myotherdomain.com上的页面可见。

如果您使用的是第三方认证系统,例如google,facebook等,它们都会有某种回调令牌,您必须处理并设置自己的Cookie。

答案 1 :(得分:1)

考虑使用更多指定的can be found here为您的Cookie设置Cookie的域名属性,或者尝试以下代码:

Response.Cookies["your_cookie_name"].Domain = "yourdomain.com";

答案 2 :(得分:0)

您正在寻找单点登录解决方案。 对于您的问题可能有点过分,您可能只想获得相同的域名。但如果这不是一个选项,你可能想看看: Windows Identity Foundation