【发布时间】:2019-06-12 13:54:19
【问题描述】:
我使用 .Net Core 开发了 Rest API,我的 API 由两个来源使用,一个来自 UI,另一个来自服务。
对于授权 UI,我使用了带有声明的 JWToken 方法,而对于服务,我使用了基于角色的集成安全授权。
即,对于 UI,我需要提供 [Authorize(Policy="XYZ")] 至于服务,我需要提供 [Authorize(Role="ABC")]
我的大多数 api 要么被 UI 或服务专门使用,但很少有 API 可以同时被 UI 和服务使用,但是面对,因此对于这样的 API,我需要提供一个条件,比如角色或策略匹配,
例如,Authorize[Role="ABC", Policy="XYZ"] ,但此语句期望角色和策略都可用于 AND 条件,但我需要解决方案来实施与 OR 条件相同。如果有人遇到这种情况,请帮助我。
仅供参考,我曾尝试使用自定义属性,但没有成功,因为我为 角色(使用 AuthorizeAttribute) 和 策略(使用 TypeFilterAttribute 和 IAsyncAuthorizationFilter)独立创建了自定义属性),但我再次无法将其与 OR 条件结合起来
【问题讨论】:
标签: c# api security asp.net-core custom-attributes