正在浏览基于策略的授权文档https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies?view=aspnetcore-2.1。
有一个需求,其中我将有多个需求和关联的处理程序。像
ReadpermissionReq : IAuthorizationRequirement
WritePermissionReq : IAuthorizationRequirement
与他们相关的处理程序,例如
Readhandler : AuthorizationHandler<ReadpermissionReq>
WriteHandler : AuthorizationHandler<WritePermissionReq>
将在Startup.cs
中相应地注册它们。
很少为每种需求定义属性,例如ReadAttribute: AuthorizeAttribute
,并在我的Api端点中使用这些属性,例如
[Read]
[HttpGet]
public Foo GetFoo(int id) {}
问题:在这种情况下将调用哪个授权处理程序。我知道对于单个需求和处理程序来说这没问题。但是在这种情况下,对于哪个处理程序将负责处理授权逻辑感到困惑?
还是我需要做些额外的事情以确保在特定需求的情况下调用此特定处理程序?
所引用的大多数文档仅讨论单个需求/处理程序。