我需要檢查用戶是否單擊瀏覽器刷新按鈕並重定向到錯誤頁面。我們可以在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