Asp.net MVC4:注销和浏览器';s";“后退”-作用
当用户单击“注销”时,将成功调用以下(标准)操作:Asp.net MVC4:注销和浏览器';s";“后退”-作用,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,当用户单击“注销”时,将成功调用以下(标准)操作: [HttpPost] [ValidateAntiForgeryToken] public ActionResult LogOff() { WebSecurity.Logout(); return RedirectToAction("Login", "Account"); } 用户将被重定向到登录页面 但是,当在浏览器中单击“后退”时,用户仍然可以看到他/她仍然登录的最后
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
WebSecurity.Logout();
return RedirectToAction("Login", "Account");
}
用户将被重定向到登录页面
但是,当在浏览器中单击“后退”时,用户仍然可以看到他/她仍然登录的最后一页。如果他/她尝试执行某个操作,则用户将成功重定向到登录页面,因为他不再被授权
是否有任何方法可以通过单击浏览器中的“后退”来防止已注销的用户看到授权内容?我的每个控制器都已具有[授权]属性。谢谢你的意见 如果您使用的是表单身份验证,那么下面是您的答案
如果您使用的是表单身份验证,那么下面是您的答案
事实上,没有,因为他们在浏览器中看到的是页面的缓存版本。我想,你可以试着用JavaScript捕捉后台导航事件,但我倾向于发现这种做法非常烦人,而且也不难避免
正如您所说,当用户尝试执行任何操作时,他们将被迫再次进行身份验证,因此他们实际上不会看到任何他们尚未了解的内容,因此真正的问题是,是否有理由花时间修复可能不存在的问题。实际上,没有,因为他们看到的是浏览器中页面的缓存版本。我想,你可以试着用JavaScript捕捉后台导航事件,但我倾向于发现这种做法非常烦人,而且也不难避免 正如您所说,当用户尝试执行任何操作时,他们将被迫再次进行身份验证,因此他们在后台导航中确实看不到任何他们不知道的内容,因此真正的问题是,是否有理由花时间修复可能不存在的问题。是的,您可以这样做 您需要根据需要在母版页或.aspx页面上添加一个小javascript函数
<script type="text/javascript">
window.history.forward();
function noBack() { window.history.forward(); }
</script>
window.history.forward();
函数noBack(){window.history.forward();}
在页面主体上,您可以添加
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
若用户按下页面上的后退按钮,他将被发送到当前页面。当history.forward代码将用户推回到当前页面时。因此,用户将无法返回
希望能有所帮助。是的,你可以做到
您需要根据需要在母版页或.aspx页面上添加一个小javascript函数
<script type="text/javascript">
window.history.forward();
function noBack() { window.history.forward(); }
</script>
window.history.forward();
函数noBack(){window.history.forward();}
在页面主体上,您可以添加
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
若用户按下页面上的后退按钮,他将被发送到当前页面。当history.forward代码将用户推回到当前页面时。因此,用户将无法返回
希望它能有所帮助。不允许缓存授权页面。有关此主题还有更多问题,请尝试搜索。我有点类似,可能会帮助你。不让授权页面被缓存。有关此主题还有更多问题,请尝试搜索。我有点类似,可能会帮助你。