3

设想:

  1. 用户“a”登录网站并从图书馆计算机访问会员目录页面,
  2. 用户“a”退出,浏览器保持打开状态。
  3. 用户“b”开始使用同一台计算机,点击返回按钮查看用户“a”的会员页面和信息
  4. 用户“b”不能在页面上做任何事情,只能查看(如果他们点击刷新将被重定向到登录,例如。用户“b”能够查看所有 a 的数据是一个安全隐患/错误。

注销时的当前代码:

Session.Contents.RemoveAll();
FormsAuthentication.SignOut();
Session.Abandon();
Response.Redirect("~/LogOff.aspx", false);

那么,我怎样才能阻止他们只是回击浏览器以“仅查看”他们不再经过身份验证才能查看的页面。

我了解有一种方法可以关闭网站的浏览器缓存

EG:从 ASP.NET 禁用所有浏览器的浏览器缓存

但是这会干扰/代价高昂,因为我有部分回发的更新面板?

我所描述的问题还有其他选择吗?

谢谢

4

2 回答 2

1

我知道一个更原始的方法。您应该在所有页面的页面加载中检查激活用户,如果当前用户不是激活用户,您应该将他/她重定向到 logof.aspx。这不是最好的方法,但它曾经有效。我希望它会帮助你。

于 2012-07-13T11:41:27.830 回答
0

ok Session[""] != null 很重要,看看那是 null 还是 no。但由于没有任何 page_Load 事件,所以这是在母版页/内容持有者页面上禁用缓存的解决方案,页面不会存储在缓存中,并且在按下后退按钮时,它将带您进入登录屏幕,如果不是登录旅馆

将这些标签复制到 head 部分下

<meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="-1" />
    <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />

并将其复制到文件后面的代码中。

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    Response.Cache.SetNoStore();

你会很高兴的。

于 2012-07-18T13:09:25.153 回答