【发布时间】:2015-01-02 02:18:58
【问题描述】:
由于浏览器在 We Application 中的缓存,我遇到了问题。
On LogoutButton Click 我通过以下方式清除 Session 和 Cache。
Session.Clear();
Session.RemoveAll();
Session.Abandon();
// Code disables caching by browser.
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
Response.Redirect("LoginPage.aspx", false);
我也禁用了后退按钮。
但是如果我访问历史记录,即使在注销之后,用户也可以访问所有页面。
在最新版本的 FireFox 中,我观察到它不允许返回按钮,但是当你长按返回按钮时,Firefox 会向您显示历史记录意味着以前的页面,当用户单击它时,它会显示一些重试消息并且当用户单击重试消息时,用户将被重定向到给定的页面,并且在 Web 应用程序上它显示旧用户名的名称,我最近刚刚注销。
在谷歌浏览器中我也面临同样的问题。
我观察到的另一件事是,在 FireFox 中,当用户单击重试时。它点击登录页面的 Login_ButtonClick 方法并提交凭据,这就是用户能够登录的原因。
所以我已经到了这一点,我必须找到一些方法,以便浏览器不会缓存我的 Web 应用程序页面,因为我没有在应用程序中使用缓存,性能对我来说不是问题。
或者如果我可以通过其他方式做到这一点,请告诉我。
【问题讨论】:
-
你能用代码解释一下吗
-
允许一点点 JavaScript 吗?当然,您还必须在服务器端做一些事情(使用 Insta 建议的令牌),但至少在客户端您可以自动重定向。尝试类似于此处描述的技术:stackoverflow.com/a/24058288/1207195
标签: c# asp.net browser-cache