User.IsInRole与AuthenticateRequest中的Roles.IsUserInRole

时间:2012-03-23 16:23:34

标签: asp.net-membership membership membership-provider roleprovider

HttpContext.Current.User.IsInRole在AuthenticateRequest中可用 而不是 ;但是,Roles.IsUserInRole可用。

是因为在AuthenticateRequest之后将新的GenericPrincipal分配给HttpContext.Current.User吗?有人可以解释一下吗?感谢您的帮助!

void Application_AuthenticateRequest(object sender, EventArgs e)
{
    if(HttpContext.Current.Request.IsAuthenticated)
    {
        // Return False
        bool result1 = HttpContext.Current.User.IsInRole("Administrators");

        // Return True
        bool result2 = Roles.IsUserInRole("Administrators");
    }
}

1 个答案:

答案 0 :(得分:3)

我认为您应该订阅AuthorizeRequest。此事件发生在AuthenticateRequest之后,因此已建立了委托人的身份。

http://msdn.microsoft.com/en-us/library/bb470252.aspx