gpt4 book ai didi

asp.net - 如何在 http 和 https 之间共享 asp.net session

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:50 24 4
gpt4 key购买 nike

我读到在 https 连接下运行的页面无法与在常规 http 下运行的另一个页面(或与此相同)共享一个 InProc session (基于 cookie)。我的站点在 Server 2003、IIS 6 和 .Net 2.0 上运行。

经过一些实验后,似乎在通过 https 连接时在 session 中存储数据的页面随后可以访问数据,即使在纯 http 下运行也是如此。

那么,是否有可能或者我应该检查 SSL 配置中的缺陷?

最佳答案

来自 MSDN :

When a user moves back and forth between secure and public areas, the ASP.NET-generated session cookie (or URL if you have enabled cookie-less session state) moves with them in plaintext, but the authentication cookie is never passed over unencrypted HTTP connections as long as the Secure cookie property is set.

所以基本上,如果 Secure 属性设置为 false,cookie 可以通过 HTTP 和 HTTPS 传递。

我通过将此添加到我的 Global.asax 文件中避免了这个问题:

void Session_Start(object sender, EventArgs e) 
{
if (Request.IsSecureConnection) Response.Cookies["ASP.NET_SessionID"].Secure = false;
}

这意味着如果 session cookie 是通过 HTTP 创建的,那么它只能通过 HTTPS 访问。

关于asp.net - 如何在 http 和 https 之间共享 asp.net session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com