项目背景
客户端要求网站用户(登录并能够查看其个人信息)如果尝试使用浏览器的导航按钮进行导航,则必须被注销。
我的研究
在SO上四处搜寻似乎表明人们面临的大多数问题是“阻止”人们在注销后点击浏览器的后退按钮,例如this和this。区别在于,我需要“阻止”用户浏览历史记录(甚至前进,尽管我看不到用户如果不能一开始就不能沿历史前进)即使他们已登录,也必须使用所提供的导航。
我心中的解决方案
我正在考虑在用户单击后退按钮时捕获浏览器的事件,然后将其注销。但是,正如here所讨论的,似乎您只能使用Javascript而不是使用服务器端代码来“做到这一点”。我对这种方法的看法是,用户只能通过在浏览器中禁用Javascript来绕过它。
我的问题
所以我的问题是-有没有办法可以捕获服务器端的浏览器事件并将其注销?如果没有,实现我的目标的替代方法是什么?
最佳答案
我想您最好的选择是跟踪会话。
您可以让客户端向您发送服务器处理请求的时间戳,甚至更简单:用户相关计数器(您每次发送给客户端),服务器端跟踪上次发送的时间戳/计数器。
如果用户单击“后退”按钮,他将向您发送旧的时间戳记/计数器,而不是最后一个当前的时间戳记/计数器,然后您可以将其注销到服务器端。
这应该可以解决问题。
为了确保完成技巧并使它独立于javascript,我想说您可以将此值放置在一个隐藏参数中,或者以隐藏字段形式放置,以便用户看不到它,但总是将其发送出去。到您的服务器。
我希望这有帮助!