[英]Asp.net Mvc RedirectToAction not redirecting within account controller
在我的Global.asax文件中,有一個Session_OnEnd事件,當會話超時過期時將觸發該事件。 以下是Global.asax中的代碼
protected void Session_OnEnd(object sender, EventArgs e)
{
Controllers.AccountController obj = new
Controllers.AccountController();
obj.RedirectoLogin();
}
帳戶控制器中的代碼
internal void RedirectoLogin()
{
ViewBag.Message = "Session Expired";
RedirectToAction("Login", "Account");
}
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
方法被調用。 但是不會重定向到“登錄”頁面。
在服務器端在ASP.Net框架內調用Session_OnEnd()
方法。 由於HTTP是無狀態的,因此服務器無法強制用戶重定向到新頁面(該連接可能長時間關閉)。
此方法旨在執行一些清理(例如,刪除在線用戶的數據庫記錄)。
除了@DavidG的注釋,如果要重定向用戶,則在下一個請求(當瀏覽器發送-現在已過期-會話cookie)時,該用戶將被重定向到登錄頁面。
如果您的Web應用程序嚴重依賴客戶端邏輯,則與會話在服務器上的持續時間匹配的客戶端計時器可以在會話過期后觸發重定向。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.