2010-04-03 44 views
1

會話結束,我想你重定向到登錄時當前會話結束,並且配置必須在任何查看控制器合作。頁轉到當在ASP.Net MVC

我在Global.asax中當前代碼:

protected void Session_End(object sender, EventArgs e) 
{    
    Session.Abandon(); 
    //GetPath() is getting currently path 
    // eg. http://localhost/mymvcproject 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 

回答

0

我不認爲你的代碼可以工作,因爲Session_End()更通常調用時,有一個特定的後由瀏覽器發出任何請求持續時間。因此,這裏的Response將對應於沒有特定的請求,因此不重定向。

而是嘗試處理Application_Start並檢查Session.IsNew屬性。如果它是true,則執行重定向。 (考慮通過調用FormsAuthentication.RedirectToLoginPage()來做到這一點。)

當檢查IsNew時,請注意所描述的情況here。我想在登錄過程中分配一些虛擬會話變量將解決這個問題,儘管我還沒有嘗試過自己。

2

入住web.config文件下<的System.Web >以下設置:

<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState> 

然後填寫下面的文字你的Site.Master

if (Session.IsNewSession) 
{ 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
}