阻止ASP中的后退按钮功能
本文关键字:按钮 功能 ASP 阻止 | 更新日期: 2023-09-27 18:21:10
我一直在寻找如何禁用或阻止后退按钮功能的解决方案,但其中许多解决方案不适用于新浏览器,或者不是傻瓜式的。
我考虑创建一个sessionid,并在用户登录时将其提供给用户,并将其与登录时间一起存储到数据库中,并赋予其一个名为"活动"的状态。注销时,数据库中的会话状态将更改为"非活动"。此检查将在我的所有成员页面中进行,如果用户的登录状态为"非活动",他们将被重定向到登录页面。
但是,如果按下后退按钮,我不知道这是否有效。即使用户使用了后退按钮,页面还会检查会话id并重定向用户吗?由于检查将在page_load上进行,因此我不确定如果我使用后退按钮,page_lead事件是否仍会运行
提前感谢您的回答。
Back
按钮时,Page_Load
事件将触发。因此,如果您在任何成员页面的Page_Load
中放置了正确的会话检查逻辑,那么您应该是优秀的。这将考虑到用户注销从而终止其Session
的情况,或者如果Session
实际上因不活动而过期的情况。
您是否尝试过一些有效或无效的代码
在客户端:
<script type="text/javascript" language="javascript">
window.history.forward(1);
document.attachEvent("onkeydown", keydown_handler);
function keydown_handler()
{
switch (event.keyCode)
{
case 116 : // F5;
event.returnValue = false;
event.keyCode = 0;
window.status = "Disabled F5";
break;
}
}
</script>
关于代码隐藏:
protected void Page_Load(object sender, EventArgs e)
{
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.Cache.SetNoServerCaching();
HttpContext.Current.Response.Cache.SetNoStore();
}
或者,
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
Response.Cache.SetNoStore();
}
或,跟随它。
- 注销后浏览器返回按钮问题
不要这样做。尝试禁用后退按钮或任何浏览器功能不是最佳做法。
为了避免在注销后访问,请在清除会话后尝试转移到另一个特定的"您正在注销"页面。在"您正在注销"页面中,使用javascript window.location.replace
返回您的登录页面。