2013-03-14 183 views
2

我使用以下代码行在注销后禁用浏览器后退按钮问题。浏览器后退按钮

function LogoutOnClick() { 
    window.history.go(-1); 
} 

但是,有一个问题与此代码,假如我有三页的第一个是登录页面(login.cshtml)和第二成功登录页面(home.cshtml)和第三页是关于页面(about.cshtml),

我现在登录,然后会重定向我的home.cshtml页现在我谨about.cshtml第三页之后,我就退出从about.cshtml页,它重定向我的login.cshtml页。

现在,如果我clicked on browser back button然后再次在about.cshtml页面上重定向我,但用户无法更改或添加任何内容。

所以,让我知道是否有任何适当的代码或方法来解决这个问题。

回答

5

您需要禁用浏览器缓存页面,这些页面仅在登录时才可见,以防止用户在注销后返回到他们登录时所拥有的页面。那么你不需要担心禁用后退按钮。如果他们尝试访问要求他们登录的页面,则会将其重定向到登录页面。

+0

如何禁用JavaScript或jQuery的页面缓存? – 2013-03-14 09:53:20

+0

@ user1273915你用什么来制作页面?无论如何,都需要在''标记中添加这些元标记: ' – 2013-03-14 11:32:59

4

要禁用回浏览器按钮了解更多:here

我认为这个代码将可以帮助你:

<SCRIPT type="text/javascript"> 
    window.history.forward(); 
    function noBack() { window.history.forward(); } 
</SCRIPT> 
</HEAD> 
<BODY onload="noBack();" 
    onpageshow="if (event.persisted) noBack();" onunload=""> 

编辑:对于禁用注销检查后,这样的:here

+1

以上代码停止后退按钮所有的时间什么,但我想只有在注销的情况下,停止后退按钮。 – 2013-03-14 09:32:12

1

我不认为,禁用浏览器中的后退按钮是你想要的,或者不是你想要的!从安全角度来看,您应该尝试销毁会话。而且您应该在网页的每个请求中证明权限。

想想,要存档;-)

+0

我已经销毁了这个会话。 – 2013-03-14 09:35:28

+0

然后我不明白你为什么要禁用后退按钮? – Anton 2013-03-14 09:42:35

+0

,因为注销后,当我点击返回按钮时,如果我遍历AdminPanel中的所有页面,它将在管理菜单中移动。 Bernhard表示, – 2013-03-14 09:49:02