繁体   English   中英

Asp.net Mvc RedirectToAction无法在帐户控制器内重定向

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM