我读到https连接下运行的页面无法与另一个页面(基于cookie)共享一个InProc会话(或同样的事情)定期http。我的网站运行在Server 2003,IIS 6和.Net 2.0上。如何在http和https之间共享一个asp.net会话
经过一些实验后,似乎在通过https连接时存储会话中的数据的页面CAN随后即使在纯http下运行也可以访问数据。
那么,是否有可能或应该去检查SSL配置中的缺陷?
我读到https连接下运行的页面无法与另一个页面(基于cookie)共享一个InProc会话(或同样的事情)定期http。我的网站运行在Server 2003,IIS 6和.Net 2.0上。如何在http和https之间共享一个asp.net会话
经过一些实验后,似乎在通过https连接时存储会话中的数据的页面CAN随后即使在纯http下运行也可以访问数据。
那么,是否有可能或应该去检查SSL配置中的缺陷?
从MSDN:
当用户移动回安全和公共区, ASP.NET生成会话cookie(或 URL之间来回 如果已经启用了cookie的 会话状态)与他们一起在 明文中移动,但身份验证 cookie永远不会被传递 未加密的HTTP连接只要 由于安全cookie属性设置为。
因此基本上,如果Secure
属性设置为false
,则Cookie可以通过HTTP和HTTPS传递。
我已经加入这个我Global.asax
文件避免了这个问题:
void Session_Start(object sender, EventArgs e)
{
if (Request.IsSecureConnection) Response.Cookies["ASP.NET_SessionID"].Secure = false;
}
这意味着,如果通过HTTP创建会话cookie,它只会通过HTTPS访问。
寻找问题到目前为止还没有出现太多讨论,仍在寻找。
编辑:好的现在找到一些东西。
如果两组页面都在同一个应用程序/网站中,它似乎能正常工作。
所以我会继续前进,感觉放心。
IIS设置 在IIS属性窗口,ASP的选项卡下 - >会话属性,有一个
我通过设置这个固定的这个间歇性问题,为自己“上的安全连接的新ID”的设置假。
这似乎已在IIS7中消失 - 或者我只是不清楚在哪里可以找到。这是每个站点还是全局的服务器? – 2013-05-04 21:52:38
如果上述任何解决方案不起作用,请尝试此操作。经过几天的研究,我已经弄清楚了这一点。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
...
...
CookieSecure = CookieSecureOption.Never
});
关闭此功能会带来什么样的安全隐患? – 2015-09-03 23:07:57