通过AuthorizationHandler

时间:2019-05-06 08:12:23

标签: asp.net-core asp.net-core-mvc asp.net-core-webapi

在授权中添加其他策略允许后续策略返回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中获得绑定模型,而无需手动确定它是否来自查询/路由/正文,因为我想在许多不同的请求上使用它,所以我不能让每个请求都需要在每条路线上指定另一个参数。

0 个答案:

没有答案