2015-05-04 88 views
1

我只是使用會話對象創建登錄頁面。在會話中存儲一些值(userId,userName,UserRoleId)。據我所知,會話的默認時間是20分鐘。我希望如果用戶在會話過期時看到頁面和,則將其重定向到登錄頁面。如何有可能發生任何事件自動作爲特定會話過期?以便我在那裏寫邏輯。 我搜索有關的Global.asax然後我用這一點,但它不工作..如何在會話過期或放棄時將用戶重定向到特定頁面

void Session_End(object sender, EventArgs e) 
    { 
     Response.Redirect("login.aspx"); 
    } 
+0

試試https://code.msdn.microsoft.com/Auto-redirect-to-login-e1782b2f –

回答

0

在您的母版頁類:

Stopwatch stopWatch = new Stopwatch(); 

在您的母版頁的頁面加載:

public Page_Load() 
{ 
if (!page.ispostback) 
{ 

    System.Threading.Timer TimerForSessionExpire = new System.Threading.Timer(TickForSessionExpire, null, 0, 6000*60); // check after every 1 minute 
} 
else 
{ 
    stopWatch.reset(); 
    stopWatch.start(); 
} 
} 

public void TickForSessionExpire() 
{ 
    if (stopWatch.Elapsed.TotalMinutes>20) 
    { 
     Response.Redirect("login.aspx"); 
    } 
} 

我沒有測試過,但邏輯應該沒問題。

0

您可能必須在客戶端使用javascript來完成。您可以調用一個操作來檢查會話的狀態,然後通過設置頁面的新位置來重定向用戶。

如果要從服務器驅動它,可以使用Signalr和集線器。當會話過期時,集線器將調用客戶端(仍然在js中),您將執行重定向。

0

您可以將<meta http-equiv="refresh" content="1205; url=http://domain/login.aspx">添加到您的所有答案中。

這會將頁面重定向到20分鐘加5秒到login.aspx。

相關問題