在授权中添加其他策略允许后续策略返回403而不是401,这可以满足我的要求。
但是当我有类似的东西时:
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MustHaveResourceAccessRequirement requirement)
{
if (context.Resource is AuthorizationFilterContext filterContext)
{
var request = filterContext.RouteData.Values["request"];
...
}
}
我无法访问request
,因为它不是实际路线本身的一部分...
控制器动作为:
public ActionResult GetResource([FromBody] GetResourceRequest request)
因为它是[FromBody]
而不是[FromRoute]
,所以它不可用。
是否可以在AuthorizationHandler
中获得绑定模型,而无需手动确定它是否来自查询/路由/正文,因为我想在许多不同的请求上使用它,所以我不能让每个请求都需要在每条路线上指定另一个参数。