可在其中传入枚举的自定义筛选器

本文关键字:自定义 筛选 枚举 在其中 | 更新日期: 2023-09-27 18:31:10

假设我有一个枚举,如下所示:

public enum Permissions
{
   One,
   Two,
   Three
}

如何创建可在如下所示的控制器或操作上使用的自定义筛选器:

[PermissionCheck(Permissions.One | Permissions.Two)]
public class MyController : Controller 
{
  ...
}

这可能吗?

可在其中传入枚举的自定义筛选器

public class PermissionCheckAttribute: ActionFilterAttribute
{
   public Permissions Permissions {get;set;}
   public PermissionCheck(Permissions permissions)
   {
           Permissions = permissions;
   }
}

您也可以尝试使用命名参数:

[PermissionsCheck(Permissions = Permissions.None)]

如果您遇到的问题是无法使用多个枚举值,那么您没有在枚举上使用 [Flags] 属性。 标志