我想在会话到期后正常地重定向到动作控制器。在我的Global.asax文件中添加了Session_OnEnd方法。请参阅以下代码:
的Global.asax:
public void Session_OnEnd()
{
//redirect to controller action here
}
起初我有" Response.RedirectToRoute"在方法内部但抛出异常并且无法在技术上工作。
答案 0 :(得分:3)
你不能这样做。可以在没有实际HTTP上下文的情况下触发Session_End。在此事件被触发之前,用户可能甚至已经关闭了他的浏览器,因此无处可重定向到。请求和响应对象不可用。
但您可以创建自定义ActionFilter来处理此问题。
Redirect at Session Timeout in Global.asax in mvc4
Detecting Session expiry on ASP.NET MVC
Detecting Session Timeouts using a ASP.Net MVC Action Filter