登錄後,我將進入主頁。但如果我再次按下瀏覽器的後退按鈕,則從主頁將系統發送給登錄頁面。抵制登錄後回去登錄
我該如何抵制我的用戶這樣做。如果他們在登錄時按下後退按鈕,系統將重新發送他/她到同一頁面,而不是登錄。
登錄後,我將進入主頁。但如果我再次按下瀏覽器的後退按鈕,則從主頁將系統發送給登錄頁面。抵制登錄後回去登錄
我該如何抵制我的用戶這樣做。如果他們在登錄時按下後退按鈕,系統將重新發送他/她到同一頁面,而不是登錄。
在登錄頁面添加一個片段,檢查用戶是否已經登錄。如果他/她是;然後將用戶重定向到登錄頁面。
// In the login page
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
Response.Redirect("~/Default.aspx");
}
感謝您的回覆。我已經添加了這些代碼片段,但它不起作用,因爲如果我在主頁時按下返回按鈕,它不會調用登錄頁面的Page_Load。我將System.Diagnostics.Debug.WriteLine放入Page_Load中以查看它是否被調用。但是這個聲明不會打印任何東西,這意味着它沒有被調用。 – 2012-04-01 14:21:23
檢查正確的方法簽名。同樣使用AutoEventWireup = True – 2012-04-01 15:09:39
之前AutoEventWireup被設置爲true。 – 2012-04-01 15:55:46
不要這樣做;你會做的唯一事情就是煩人。
後退按鈕應該回去。
在你的Login.aspx頁面的頂部,添加以下行,以防止瀏覽器緩存的登錄頁面:
<%@ OutputCache Location="None" NoStore="True" %>
然後,在Login.aspx.cs,重定向到您的主頁,如果用戶已經登錄:
protected override void OnPreInit(EventArgs e)
{
if (this.Request.IsAuthenticated)
this.Response.Redirect("~/Home.aspx");
base.OnPreInit(e);
}
你爲什麼要這麼做?想象一下,你自己是一個網站的用戶,它的行爲方式是這樣的 - 當你按下後退按鈕時,你是否真的喜歡網站違反/忽略? – Yahia 2012-04-01 14:19:27
如果您登錄到oracle論壇這樣的網站,您將在登錄後首次登錄論壇時看到,如果按下後退按鈕,它會將您發送到錯誤頁面。我正在嘗試實現它,就像將用戶置於主頁中一樣。 – 2012-04-01 14:23:51