Session.SessionID 在 IE 10 中为每个 post 生成新 ID

Session.SessionID generate new ID on each post back in IE 10

我创建了一个 asp.net 页面,将用户特定数据存储在会话变量中。

string key= Session.SessionID;
Session.Add(key,"myData");

到目前为止,我一直在在chrome上测试它,一切都正常工作。但是,一旦我开始在 IE 10 上对其进行测试,功能就停止工作。后来我发现在每个 post 上返回 IE returns Session.SessionID 的新值,而这个值是 persistent在 Chrome.

请告诉我如何解决这个问题。

您需要在 IE 中启用 cookie。

Session是这样工作的 - 它依赖于客户端cookie来唯一标识一个客户端,并将唯一值保存到cookie中,这取决于你的web.config设置,如果cookieless = false,那么它存储在客户端 cookie 中。

当请求来自客户端时,它使用唯一可识别的 cookie 获取您的会话存储(在服务器中)值。

如果 cookie 被禁用,它每次都会为每个请求创建新的会话,这就是为什么您每次在 IE 中都会获得新的会话 ID,因为它可能禁用了 cookie。