在我的MVC应用程序中,用户可以登录。如果会话过期,我想立即重定向到登录页面。我试过这个
protected void Session_End(Object sender, EventArgs e)
{
Response.Redirect("/Home/Index");
}
但它没有重定向页面..我可以捕获会话结束..我可以通过在那里设置一个断点来看到它。我知道很难在没有客户请求的情况下重定向页面。有什么我能做的吗? 我尝试了这个..在母版页的头部我把下面的代码
<meta http-equiv="refresh" content="0015; URL=<%= Url.Action("Index", "Home") %>"/>
代码在15秒后重定向页面。但是我只想在没有访问(空闲)页面的情况下重定向。
答案 0 :(得分:2)
创建会话控制器并为其提供HasExpired bool方法。
不刷新页面,使用轮询和Jquery的setInterval方法通过ajax调用HasExpired方法。
如果HasExpired返回true,则将(通过window.location)重定向到您的主页。