【发布时间】:2017-11-07 21:03:50
【问题描述】:
当需要处理复杂的AND/OR 条件时,我在解决 ASP.NET Core 中的授权逻辑时遇到了困难。在我的 API 方法获得授权之前检查的条件示例:
A & (B | C & D & E | C & F) - each condition consists of 1 or more checks
我知道所有可用的授权类型(包括policy-based 和resource-based)。
一般来说,使用新的授权模型,我不确定如何处理OR 的条件。
我知道我可以拥有OR 条件的授权处理程序,但我觉得这还不够(在我的示例中,我认为我不能为(B) | (C & D & E) | (C & F) 创建一个包含 3 个授权处理程序的要求,因为会太笨重,特别是如果由于业务模型规则将这些条件放在一起没有意义)。
我还理解授权处理程序不能相互依赖。此外,我认为一个处理程序不能更一般地与多个需求相关联。
还有其他方法可以处理这些情况吗?是否有一般规则如何将复杂性分解成小块来解决此类问题?
【问题讨论】:
标签: c# asp.net-core asp.net-authorization asp.net-core-identity