User.IsInRole против Roles.IsUserInRole в AuthenticateRequest - PullRequest
5 голосов
/ 23 марта 2012

HttpContext.Current.User.IsInRole равно , а не , доступное в AuthenticateRequest;однако Roles.IsUserInRole доступен.

Это потому, что новый GenericPrincipal назначен HttpContext.Current.User после AuthenticateRequest?Может ли кто-нибудь объяснить мне об этом?Ценю вашу помощь!

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 Ответ

3 голосов
/ 23 марта 2012

Я думаю, что вы должны подписаться на AuthorizeRequest.Это событие наступает после AuthenticateRequest, поэтому личность принципала установлена.

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

...