2

我正在開發一個asp.net網站&我沒有使用asp.net的內置身份驗證控件。「返回」 - 瀏覽器不能進入前一頁 - 退出後

我已經爲網站的用戶手動創建了表。

我要的是如下

  • 用戶可以訪問的頁面登錄後(即已經完成)
  • 當用戶按註銷。 (用戶轉到特定頁面 - 示例 - default.aspx)
  • **現在,當用戶按瀏覽器的「返回」按鈕時它不能轉到上一頁。 ** (即在雅虎頁面中完成 - 我想實現相同)。

請通知我是否它是重複問題。

在此先感謝您的幫助。

薩加爾。

回答

2

要在按下後退按鈕時,爲防止用戶看到以前的頁面,你需要不指示瀏覽器緩存此頁:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
Response.Cache.SetValidUntilExpires(false); 
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetNoStore(); 

你可以把這個代碼在所有的認證頁面,從而防止它們在客戶端瀏覽器上緩存。

+0

是的。正確和短的解決方案。很棒的一個。你很優秀」 – 2009-12-26 18:13:12

1

對於一個不被緩存的頁面,瀏覽器需要對緩存指令作出適當的響應,但不能保證這將適用於每個瀏覽器! (一個適當的邪惡的人可以編寫他們自己的瀏覽器來忽略緩存信息,或者寫一個代理去除它...)

所以你不能讓這個工作100%的時間,但你總是要面對一個問題,一個用戶可以輕鬆地截圖,打印出一個頁面,在他們的磁盤上保存一份副本等等,無論如何,一旦你已經給他們一個頁面...

1

你的答案問題是:

  • 用於當用戶按退出。 (用戶轉到特定頁面 - example - default.aspx) 您可以添加LinkBut​​ton作爲退出鏈接,並在Click事件處理程序中編寫 Response.Redirect(「Default.aspx」);

  • 的現在,當用戶按下「返回」瀏覽器的按鈕,它不能返回上一頁 //添加以下代碼到你的代碼的頁面

    保護覆蓋無效的OnPreRender(EventArgs的五)

    的背後

    {

    base.OnPreRender(e); 
    string strDisAbleBackButton; 
    strDisAbleBackButton = "<script language="javascript">\n"; 
    strDisAbleBackButton += "window.history.forward(1);\n"; 
    strDisAbleBackButton += "\n</script>"; 
    ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "clientScript", strDisAbleBackButton); 
    

    }

指csharpdotnetfreak.blogspot.com

相關問題