2010-04-03 62 views
1

会话结束,我想你重定向到登录时当前会话结束,并且配置必须在任何查看控制器合作。页转到当在ASP.Net MVC

我在Global.asax中当前代码:

protected void Session_End(object sender, EventArgs e) 
{    
    Session.Abandon(); 
    //GetPath() is getting currently path 
    // eg. http://localhost/mymvcproject 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
} 

回答

0

我不认为你的代码可以工作,因为Session_End()更通常调用时,有一个特定的后由浏览器发出任何请求持续时间。因此,这里的Response将对应于没有特定的请求,因此不重定向。

而是尝试处理Application_Start并检查Session.IsNew属性。如果它是true,则执行重定向。 (考虑通过调用FormsAuthentication.RedirectToLoginPage()来做到这一点。)

当检查IsNew时,请注意所描述的情况here。我想在登录过程中分配一些虚拟会话变量将解决这个问题,尽管我还没有尝试过自己。

2

入住web.config文件下<的System.Web >以下设置:

<sessionState mode="InProc" cookieless="false" timeout="1"></sessionState> 

然后填写下面的文字你的Site.Master

if (Session.IsNewSession) 
{ 
    Response.Redirect(PATH.GetPath() + "User/LogOn"); 
}