【发布时间】:2014-06-19 19:04:47
【问题描述】:
我有一个 asp.net 会话,它在应用 Session.Abandon 和 Session.Contents.RemoveAll 后返回以前保存的数据。注意:这只发生在运行 Windows 7 和 IE 11 的单台计算机上。会话变量会根据需要在其他 IE 浏览器和 Chrome 上下降。另外,我的开发箱运行的是 IE 11,在这里运行良好。只是这个系统似乎有一个会话幽灵。
代码使用会话变量来跟踪访问网站以提供内容的匿名用户。多个用户可能使用同一台计算机,因此我设置了一个“更改用户”例程,该例程放弃会话并将浏览器重定向回 default.aspx 页面,登录弹出窗口请求新信息。
但是结果是“前一个用户”访问的每个页面都显示了旧用户的凭据。查看的每个其他页面都会显示“当前用户”的凭据。我使用一个会话变量来跟踪所有这些页面的用户。
更改用户:
//Drops session and forces user back to default.aspx to be logged in.
protected void Change_User(object sender, EventArgs e)
{
Session.Abandon();
Session.Contents.Abandon();
Session.Contents.RemoveAll();
Response.Redirect("~/default.aspx");
}
对我来说,这听起来像是一个 IE 11 配置问题。但我从未见过会话变量将自身附加到单个 URL。
【问题讨论】:
-
您确定不是其他用户之前访问过的页面的缓存问题?
-
用户的浏览器设置为“从不”检查存储页面的较新版本。这似乎一直保持着旧的价值观。谜团已揭开!谢谢!
-
好了!我会将该评论放入实际答案中,以便它可以被接受,并且这个问题将不再显示为未回答。 :)
标签: c# asp.net session internet-explorer-11