【问题标题】:Session_OnEnd in Global.asax redirect to controller action MVC ASP.NETGlobal.asax 中的 Session_OnEnd 重定向到控制器操作 MVC ASP.NET
【发布时间】:2014-09-17 23:22:48
【问题描述】:

我想在会话过期后优雅地重定向到动作控制器。在我的 Global.asax 文件中添加了 Session_OnEnd 方法。见以下代码:

全球.asax:

public void Session_OnEnd()
{
    //redirect to controller action here
}

起初我在方法中有“Response.RedirectToRoute”,但抛出异常并且在技术上无法工作。

【问题讨论】:

  • 当会话结束时,这只是观察到用户最近没有向服务器发送任何请求。您没有来自用户浏览器的未完成请求,因此您没有机会向其发送 anything 以使其执行任何操作。 HTTP 是请求/响应,服务器无法启动客户端的操作。
  • @Damien_The_Unbeliever Web Sockets 来拯救!!!!!!!

标签: c# asp.net asp.net-mvc


【解决方案1】:

你不能这样做。 Session_End 可以在没有实际 HTTP 上下文的情况下触发。用户甚至可能在触发此事件之前很久就关闭了浏览器,因此无处可重定向。 Request 和 Response 对象不可用。

但您可以创建自定义 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

【讨论】:

  • 谢谢@Mohsen Esmailpour,我会试试的:)
猜你喜欢
  • 1970-01-01
  • 2011-10-05
  • 2013-02-13
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 2016-02-06
  • 2014-12-31
  • 2017-03-07
相关资源
最近更新 更多