.NET MVC - 在Global.asax中检查IsInRole()的位置?

时间:2010-06-18 22:23:56

标签: .net asp.net-mvc global-asax

Global.asax生命周期的哪个部分可以安全地“使用”User对象?我使用默认的forms authentication并注意到以下内容:

Sub Application_BeginRequest()
    'Context.User Is Nothing
End Sub

Sub Application_AuthenticateRequest()
    'Context.User Is Nothing
End Sub

Sub Application_AuthorizeRequest()
    'Context.User is available
    'Context.User.IsInRole() returns false while user is in role
End Sub

似乎应该是AuthorizeRequest()的地方,但IsInRole()不会返回预期的true我在这里遗漏了什么吗?

1 个答案:

答案 0 :(得分:3)

我认为你真的想在Post_AuthenticateRequest中做到这一点:

void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
{
    // Context.User is available now, and IsInRole() should work fine;
}