我需要检查用户是否单击浏览器刷新按钮并重定向到错误页面。我们可以在javascript中使用javascript或任何服务器端方法执行此操作:当用户点击浏览器刷新按钮时重定向到错误页面
回答
如果您为每个链接提供URL中唯一的ID(例如GUID)作为参数,则可以跟踪所有请求你已经处理完毕。 (如果你不介意这个机制不工作,如果有人让浏览器打开几天然后刷新刷新,你可以清除“旧”请求。)当你第一次看到一个GUID时,把它写入表中。如果再次看到它,请重定向到错误页面。
虽然这很丑,用户可以编辑URL来稍微改变GUID。 (您可以通过记录GUID当你生成它解决这最后的漏洞,并更新表指示何时它已经使用)
一般情况下,用户希望能够刷新页面,但 - 特别是对于GET请求(即使大多数用户不知道这意味着什么)。你为什么想这样做?
你可以使用客户端隐藏变量来存储计数器,或者你可以把计数器放在会话中。那么我会建议你刷新页面过期有办法可以实现这个禁用缓存等[像所有银行网站一样]。
你可以这样做,但我相信你不应该这样做。用户控制着浏览器,如果她觉得自己很爽快,那么你的工作就是确保页面刷新。返回错误页面是错误的答案。
那么,你可以使用一个非常有名的技术叫做“Syncronizing Token”或类似的东西= D,主要用于发送表单。
这会像这样:
创建一个函数来提供一个伪随机字符串标记。
对于您的每个请求页面,请检查Session中是否存在变量,例如:Session [“synctoken”](如果存在)。如果不是,那么这是第一次生成令牌并将其存储在那里。
每个链接请求,例如:“mypage.aspx”将一个名为synctoken的get与另一个标记放在一起,与您在Session中存储的标记不同,它会像“mypage.aspx?synctoken = 2iO02-3S23d” 。 (Request.QueryString [“synctoken”]!= null)。然后,回到(2),在请求中,如果令牌存在于会话中,则检查是否存在GET(Request.QueryString [“synctoken”]!= null)。如果否,则发送错误。如果是,请检查令牌(会话和GET)是否不同。如果它们不同,则可以将GET存储到Session(Session [“synctoken”] = Request.QueryString [“synctoken”])并转到步骤(2)。如果不是,那么用户刷新页面,出现错误。
它是这样:
if (Session["synctoken"] != null) {
if (Request.QueryString["synctoken"] != null) {
if (Request.QueryString["synctoken"].ToString().Equals(Session["synctoken"].ToString())) {
// Refresh! Goto Error!
MyUtil.GotoError();
}
else {
// It is ok, store the token and go on!
Session["synctoken"] = Request.QueryString["synctoken"];
}
}
else {
MyUtil.GotoErrorPage();
}
}
else {
Session["synctoken"] = MyUtil.GenerateToken();
}
很抱歉,如果我不能更清楚..祝你好运!
- 1. 当点击浏览器的后退按钮时,重定向到特定页面
- 2. 当浏览器后退按钮命中时,重定向到错误页面?
- 3. 当用户点击浏览器的后退按钮时将用户重定向到页面
- 4. 当用户点击浏览器的“刷新”按钮时如何避免重复?
- 5. 当用户点击浏览器的“刷新”按钮时如何避免重复?
- 6. 点击后退按钮时重新加载浏览器页面
- 7. Codeigniter,当点击返回按钮浏览器时重定向到上一页
- 8. 在浏览器上刷新jsp页面后退按钮点击
- 9. 刷新当前页面当我点击浏览器后退按钮(铬)
- 10. 重定向到指定的页面点击浏览器后退按钮
- 11. 当用户点击浏览器后退按钮(并且页面未刷新)时,设置新会话变量?
- 12. 当点击提交按钮时重定向到其他页面
- 13. 想要刷新页面,当我点击浏览器后退按钮
- 14. 当在子页面点击按钮时刷新父页面
- 15. 当点击Facebook按钮时,将用户重定向到另一个PHP页面
- 16. 如何在点击浏览器后退按钮时刷新ASP .NET MVC页面
- 17. 点击浏览器刷新时的Ajax调用按钮
- 18. 当用户点击浏览器后退按钮时,如何重新加载当前页面
- 19. 角5 - 重定向页面主页上的浏览器刷新
- 20. 刷新用户点击某个按钮时的页面ajax
- 21. 当用户点击浏览器中的后退按钮时重新加载页面
- 22. 如何在用户点击asp.net中的浏览器后退按钮时快速重定向页面
- 23. ASP.NET按钮点击重定向到新页面
- 24. 用户刷新浏览器时如何重定位到另一个页面?
- 25. 强制页面刷新/重载如果后退按钮用户点击浏览器
- 26. 重定向到按钮页点击
- 27. 当我点击asp图像按钮时如何刷新页面?
- 28. 块按钮点击刷新页面
- 29. 点击刷新页面的按钮
- 30. 点击按钮后刷新页面
好的,得到了一个减号,但我甚至不知道为什么!很抱歉帮忙。 – 2008-11-16 15:00:34