Servicestack 中基于 ACL API 的权限

ACL-based API Permissions in Servicestack

情况: 我正在为我的公司编写一个服务应用程序,由于固定角色不适合我的情况,我想建立对我的 API 服务的基于 ACL 的访问。 模型和数据库端不是我的问题。
问题: 我将如何重新部署在身份验证(JWT 和凭据)之后但在我的服务(Get,Post,...)之前运行的请求过滤器,它确定是否允许用户调用该操作(在这个过滤器中我会检查我的 ACL 和 return 允许或拒绝)。 我不需要交钥匙解决方案,但非常欢迎提出建议!
详细信息:实施时角色和用户不存在。在我的前端中,我想创建角色和用户(如 Windows 或类似的)并动态分配权限。角色和用户的权利可能会改变。甚至角色也可以删除并由其他人替换。

这听起来像是您只想 validate permissions 所以我会使用内置的 [RequiredPermission][RequiresAnyPermission] 属性,如果它适合您的用例。

否则,我的首选方法是使用声明性 Request Filter Attribute which is also how the built-in AuthenticateAttribute.cs 实现任何 ACL,但带有否定 Priority,因此它们将在任何自定义过滤器属性之前执行,这些属性默认具有 Priority=0