我想在API项目中执行隐式授权(基于资源),而不必在控制器方法中进行检查。但是,经过大量研究后,我似乎找不到实现它的好方法。
中间件和授权过滤器均在模型绑定之前执行,我需要访问输入模型才能进行授权。
我目前的想法是使用Action Filters实现类似策略的系统,但是这并不理想,因为应用程序模型的其他部分不会将过滤器视为授权过程的一部分。例如,swaggerdoc构建器不会知道某个动作过滤器意味着某个方法需要授权。
我也一直在想在请求管道中更早地调用模型绑定器的想法,但是还没有找到一种方法来做到这一点。解析原始请求数据太脆弱了。
有没有人比我当前的候选人(动作过滤器)更了解处理此问题的方法?