![](/img/trans.png)
[英]How to expire ASP Session if user will not interact with web page for specific time?
[英]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.