ASP.NET MVC:[授权]的对面

ajb*_*ven 6 asp.net-mvc authorization

授权过滤器允许您指定可以访问控制器或操作的指定用户组:

[Authorize(Roles="Administrator")]
public class HomeController : Controller
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以指定一组无法访问控制器或操作的用户.

ajb*_*ven 5

我在twk的建议后尝试创建自己的AuthorizationAttribute:

public class Restrict : AuthorizeAttribute
{
    private readonly string _role;

    public Restrict(string role)
    {
        _role = role;
    }

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null)
            throw new ArgumentNullException("httpContext");

        if (httpContext.User.IsInRole(_role))
            return false;

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

[Restrict("Administrator")]
public class HomeController : Controller
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是正确的做法,但它确实起到了作用.