当用户登录我们的MVC3网络应用程序时,我们需要处理特定的内容,因此它在global.asax.cs中连接如下:
public void FormsAuthentication_OnAuthenticate(object sender, FormsAuthenticationEventArgs args)
{
if (args.Context.Request.LogonUserIdentity != null)
{
MembershipUser mu = Membership.GetUser();
// blah blah ... kick off something special
// for logged in users here
}
}
现在我得到了例外
System.InvalidOperationException: This method can only be called after the authentication event.
在args.Context.Request.LogonUserIdentity != null
行,以避免绊倒Membership.GetUser();
我怀疑选择使用FormsAuthentication_OnAuthenticate
不是一个合适的选择,我正在寻找适当的事件和功能(lifetime and events)没有明确的答案。
我真的偏离了这个方向吗?处理此案例的最佳事件/功能是什么?谢谢!
答案 0 :(得分:0)
我遇到了同样的问题。使用global.asax事件Application_AuthorizeRequest而不是FormsAuthentication_OnAuthenticate为我工作。