下面的PHP代码再现了这个问题。在IE9中,打印的会话id在HTTP和HTTPS之间是不同的。在Chrome 16和Firefox 8中,HTTP和HTTPS之间的会话id是相同的。
这是完全相同的网页。唯一不同的是协议。
1 <?
2 session_start();
3
4 $sid = session_id();
5
6 print session_name() . ": " .$sid;
7
8 ?>
cookie未设置为安全。IE9为HTTPS管理的cookie池似乎与用于HTTP的cookie池完全不同。
在我的情况下,IE的安全设置被搞砸了-这个网站被放入了一些"受信任的网站"中,所以当我删除那些"受信任网站"时,将所有安全设置恢复为默认设置,将区域设置为Internet-问题得到了解决,会话现在在http和https之间共享。这似乎是IE的另一个"功能"——让你彻底搅乱互联网。