当前位置:  开发笔记 > 后端 > 正文

我如何在http和https之间共享一个asp.net会话

如何解决《我如何在http和https之间共享一个asp.net会话》经验,为你挑选了2个好方法。

我读到一个在https连接下运行的页面不能与常规http下运行的另一个页面(或相同的内容)共享一个InProc会话(基于cookie).我的站点在Server 2003,IIS 6和.Net 2.0上运行.

在一些实验之后,看起来在通过https CAN连接时在会话中存储数据的页面随后访问数据,即使在普通的http下运行也是如此.

那么,是否有可能或者我应该过去寻找SSL配置中的缺陷?



1> John Rasch..:

来自MSDN:

当用户在安全区域和公共区域之间来回移动时,ASP.NET生成的会话cookie(如果您启用了无cookie会话状态,则为URL)以纯文本格式移动,但是身份验证cookie永远不会通过未加密的HTTP传递连接,只要设置了安全cookie属性.

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

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

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

这意味着如果会话cookie是通过HTTP创建的,则只能通过HTTPS访问.



2> 小智..:

IIS设置在IIS属性窗口的ASP选项卡 - >会话属性下,有一个"安全连接上的新ID"设置

我通过将此设置为false来修复此间歇性问题.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有