User.IsInRole与AuthenticateRequest中的Roles.IsUserInRole

Win*_*Win 5 membership asp.net-membership roleprovider membership-provider

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");
    }
}
Run Code Online (Sandbox Code Playgroud)

cod*_*ife 3

我认为你应该改为订阅AuthorizeRequest。该事件发生在 后AuthenticateRequest,因此委托人的身份已经确定。

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