2011-07-21 37 views
0

我正在将使用MVC1,Visul Studio 2008和.Net 3.5的应用程序转换为MVC3,.Net4 vs2010应用程序。在会话到期时强制注销,在.Net中不同4

我知道它基本上工作,但我必须执行一些事情才能让它继续下去。

要强制注销当用户过期我曾经有这样的代码在Global.asax.cs中

void Session_End(object sender, EventArgs e) 
     { 
      //Todo make this work with mvc3/.net4 
      //IFormsAuthentication FormsAuth = ObjectFactory.GetInstance<IFormsAuthentication>(); 
      //FormsAuth.SignOut(); 

      //Server.Transfer("~/AccessControl/AdLogin.aspx"); 
     } 

但它转换为.NET4/MVC3后不久坠毁,看起来像它的东西一旦依赖不尚未初始化。

我认为我需要将它移动到一个新的事件,任何想法?如果不是,我该如何在新环境中做到这一点。

+0

我认为Session_End事件没有被解雇? – Tocco

+0

会话结束时正在触发,但MS FormsAuthentication的东西(包装在IFormsAuthentication中)在注销被调用时崩溃,并且重定向也崩溃了。 –

回答

0

这是一个丑陋的解决方案,但我最终把它包装在结构图异常Try/Catch中,并吞下异常。我真的很想找到一个更好的解决方案,如果有人有。

Cal-