2012-03-14 56 views
0

我有一個MVC3應用程序,其中用戶發送一封電子郵件,有一個鏈接。點擊電子郵件中的鏈接後,用戶被帶到登錄頁面,然後登錄後,第2頁(第二頁)。 現在,用戶無法再回到登錄頁面來第二頁後,這是(使用會話)瀏覽器後退按鈕並關閉問題

在第二頁的控制器我爲它編寫的代碼:

Session.Add("Login",true); 

在登錄頁面的控制器:

if(Session["Login"]==true) 
    { 
    //redirect back to Second page 
    } 
    else{ 
    //continue 
    } 

現在的問題是,當用戶來到第二頁,關閉​​窗口,然後再次鏈接點擊(在電子郵件中),他被帶到到第二頁,而不是登錄,由於上面的代碼。這不應該發生。任何方式來避免這種情況,或找到一個更好的方法來防止後退按鈕的使用? 我想我可以檢測瀏覽器的關閉事件,並清除我的會話,但它似乎不可能。請幫助!

回答

2

如果你想在電子郵件中的鏈接到用戶系統發送到登錄頁面,你可以修改它,像這樣:

http://domain.com/account/logon?returnurl=/somecontroller/someaction 

這樣,每次用戶點擊電子郵件中的無論鏈接他已在您的網站上進行身份驗證,他將被帶到LogOn頁面。

+0

是的,這是可能的,但有沒有其他方式只涉及這兩頁(登錄和第二)? – 2012-03-14 10:58:49

+0

點正在更改鏈接上的URL將需要更改別人的代碼,而不是我的模塊的一部分,我不認爲我可以讓其他人這樣做! :-( – 2012-03-14 11:07:10

+0

@karank,恐怕沒有修改鏈接就不能實現這一目標,因爲如果第二頁需要驗證並且用戶已經通過身份驗證,當他點擊電子郵件中的鏈接時,他將直接到達在第二頁。 – 2012-03-14 11:59:25