簡體   English   中英

如何隨着會話過期或放棄將用戶重定向到特定頁面

[英]How to redirect user to specific page as Session Expire or abandon

我只是用會話對象創建一個登錄頁面。 在會話中存儲一些值(userId,userName,UserRoleId)。 據我了解,默認的會話時間為20分鍾。 我希望如果用戶正在觀看頁面,並且隨着會話到期發生,則將其重定向到登錄頁面 在特定的會話期滿時,有什么事件會自動觸發? 所以我在那里寫邏輯。 我搜索global.asax,然后使用了它,但是它不起作用。

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

在您的母版頁上:

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");
   }
}

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

您可能必須使用javascript在客戶端執行此操作。 您可以調用一個操作,該操作將檢查會話狀態,然后通過為頁面設置新位置來重定向用戶。

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

您可以在所有回復中添加<meta http-equiv="refresh" content="1205; url=http://domain/login.aspx">

這會將頁面在20分鍾加上5秒后重定向到login.aspx。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM