c# - 我在 asp.net 2.0 中的 session 变量有问题

标签 c# asp.net vb.net session back-button

我在用户登录时保留一个 Session 变量。 因此,当用户单击 btnLogout 时,它必须清除我的所有 session 并将用户注销!

它确实清除了我的 session ,但是如果我在注销后立即单击 IE 中的“返回”按钮,那么我仍然处于登录状态!这意味着它会返回到用户仍处于登录状态的屏幕。

我的注销代码

protected void btnLogout_Click
{
   Session.Clear();
   Session.Abandon();
   Session.RemoveAll();

   Response.Redirect("Home.aspx");
}

为什么会这样,我该如何预防?

编辑: 在我可以执行的代码中是否有一个选项可以禁止用户在 Web 浏览器中按“后退”按钮?

最佳答案

你可以把它放在你的 Master 的 Page_Init 中:

Response.Cache.SetNoServerCaching();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Cache.SetExpires(new DateTime(1900, 01, 01, 00, 00, 00, 00));

例如,大多数银行网站都会这样做,因此您无法有效地使用后退按钮。

关于c# - 我在 asp.net 2.0 中的 session 变量有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/833680/

相关文章:

c# - 如何为Windows应用程序创建.exe文件

asp.net - kpm 恢复 ubuntu : The requested feature is not implemented

.net - 有没有更快的方法来获取卷序列号?

c# - 在项目中复制 Web 表单页面的最佳方式?

c# - 尝试访问已卸载的应用程序域(调用 AzMan)

c# - 内存泄漏风险的可能性 - 从 C# 中的字节数组获取 IntPtr

c# - 在运行时从外部配置文件重新加载配置设置

javascript - 只有在 ajax 请求完全完成后才执行 js 函数

javascript - 通过 jQuery 返回 JSON 响应并重构 HTML 表

mysql - 如何将excel文件导入mysql