C# MVC授权属性必须满足所有要求,是否只能满足一个要求?
我希望管理员或特定用户能够访问我的视图。所以我添加了这个属性C# MVC授权属性必须满足所有要求,是否只能满足一个要求?,c#,asp.net,asp.net-mvc,authorization,C#,Asp.net,Asp.net Mvc,Authorization,我希望管理员或特定用户能够访问我的视图。所以我添加了这个属性 [Authorize(Roles = "Admin", Users = "john, jane, jim" )] 我希望,如果用户满足角色或用户的要求,他们将获得授权。但它似乎只授权符合这两个条件的用户 是否可以将其作为或处理?我刚刚创建了一个自定义授权类,用于处理未经授权的请求并进行自身比较。我还添加了一个重定向到自定义未经授权的视图,而不是抛出一个401错误 public class MyAuthorizeAttribute :
[Authorize(Roles = "Admin", Users = "john, jane, jim" )]
我希望,如果用户满足角色或用户的要求,他们将获得授权。但它似乎只授权符合这两个条件的用户
是否可以将其作为或处理?我刚刚创建了一个自定义授权类,用于处理未经授权的请求并进行自身比较。我还添加了一个重定向到自定义未经授权的视图,而不是抛出一个401错误
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
// The user is not authenticated
base.HandleUnauthorizedRequest(filterContext);
}
else if (!Roles.Split(',').Any(filterContext.HttpContext.User.IsInRole) && !Users.Split(',').Any(ex => ex.ToLower().Trim() == filterContext.HttpContext.User.Identity.Name.ToLower()))
{
// The user is not in any of the listed roles =>
// show the unauthorized view
filterContext.Result = new ViewResult
{
ViewName = "~/Views/Shared/Unauthorized.cshtml"
};
}
}
}
然后我只是在属性中使用MyAuthorize
而不是像这样使用Authorize
[MyAuthorize(Users = "john, jane, tim", Roles = "admin")]