我有一个要求,即最终用户在注销/注销后不能返回受限制的页面。但目前终端用户可以通过浏览器的后退按钮,访问浏览器历史记录,甚至在浏览器的地址栏中重新输入URL来完成此操作。
基本上,我希望最终用户应该不能在登出后以任何方式访问受限制的页面。我怎样才能做到最好呢?我能用JavaScript禁用后退按钮吗?
发布于 2012-03-04 04:28:07
如果你转发一个页面,Url模式中的*.jsp将不起作用。试着把你的servlet也包括进来。这将使您的应用程序不受后退按钮问题的影响。
发布于 2015-06-29 23:44:14
要做到这一点而不禁用浏览器返回,最简单的方法是将以下代码添加到您不希望用户在注销后返回的页面的page_load
事件中:
if (!IsPostBack)
{
if (Session["userId"] == null)
{
Response.Redirect("Login.aspx");
}
else
{
Response.ClearHeaders();
Response.ClearContent();
Response.Clear();
Session.Abandon();
Session.Remove("\\w+");
Response.AddHeader("Cache-Control", "no-cache, no-store, max-age = 0, must-revalidate");
Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Expires", "0");
}
}
发布于 2016-11-05 20:38:38
执行此操作的正确方法是将
Vary: Cookie
安全页面上的标题。当用户注销时,清除其会话cookie。然后,当他们在注销后返回导航时,浏览器缓存将丢失。这也有一个好处,就是不会完全破坏缓存。
https://stackoverflow.com/questions/4194207
复制相似问题