2010-09-01 119 views
1

您好我想清除用戶頁面的歷史記錄,他們從他們的頁面操作註銷後。我GOOGLE了它,並找到一些緩存方式,但它不工作正常。通過Asp.net-C清除瀏覽器歷史記錄#

+1

我不確定你想要做什麼,但「代碼4我!」是不是一個非常有禮貌的方式來尋求幫助。 – DavidGouge 2010-09-01 10:26:48

+0

對不起,我用你的語言表達了你的感受。 – 2010-09-01 15:59:29

回答

1

您可能要考慮的一件事是在服務器端更優雅地處理場景。

首先,我會考慮一種指導瀏覽器不緩存頁面的方法。然後,在您希望「保護」的每個頁面上,您可以對需要存在的cookie進行檢查(即在基類中)以訪問這些頁面。當用戶註銷時,請移除cookie。

這樣,如果用戶點擊後退按鈕並最終試圖導航到其中一個頁面,服務器將被要求再次提供頁面,並且您的支票可以到位以查看他們是否應該能夠訪問它。如果他們不應該能夠將它們重定向到您要查找的任何頁面 - 無論是信息頁面還是登錄頁面等。

這也解決了用戶「共享URL」的問題應該被限制和/或書籤他們。我們之前在一個項目中使用了類似的方法,而且它簡單而有效。如果用戶在未登錄的情況下無法訪問該頁面,則只需將其重定向到登錄頁面即可。查看日誌,大多數日誌都沒有引用頁面,這意味着它們可能已經爲頁面添加了書籤。

+0

這是一個很好的建議,特別是關於瀏覽器沒有緩存頁面。 – 2010-09-02 22:08:59

1

您無法清除瀏覽器歷史記錄。無論是.net還是javascript。

1

這通常是不是一件好事,因爲它會改變用戶體驗,改變瀏覽器對大多數用戶來說已成爲第二性質的行爲。我知道,當我遇到它時,這種事會讓我感到困擾。我想到的思想是沿着這條線:

爲什麼你不讓我回去?我點擊了後退按鈕 - 它應該帶我回去!你讓我先到那個頁面!爲什麼我不能回去呢?讓我回去!

你應該擴大爲什麼需要這個。我可以想象在某些情況下你可能想要這樣做,比如在線考試或調查。但以我的經驗來看,這種不尋常的要求通常來自需求收集過程,這個過程還沒有經過深思熟慮。

在大多數情況下,如你上面提到的考試方案將可能需要跟蹤用戶的頁面瀏覽量中的會話狀態,也可能是用戶數據庫,如果你需要,以防止他們返回頁面進行的跨多會話。然後,您需要檢查該用戶的「已查看頁面」狀態,並且如果他們嘗試訪問上一頁,請決定是否向他們顯示錯誤消息或將其重定向到您希望他們轉到的位置。這通常會在Page_Load事件中完成。

這將允許您阻止他們訪問您網站中的上一頁,而不清除其他網站上訪問的頁面的歷史記錄。

另外,您可能會喜歡看ASP.NET嚮導控件。它可以配置爲提供只向前的嚮導風格的界面,但這意味着您將各種視圖的所有代碼都放在一個頁面上。對小巫師來說不錯,但對於大巫師來說有點笨拙。