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");
}
}
我认为您应该订阅AuthorizeRequest
。此事件发生在AuthenticateRequest
之后,因此主体的身份已建立。
http://msdn.microsoft.com/en-us/library/bb470252.aspx