来自基于策略的授权的自定义 JSON 响应被覆盖

lev*_*jay 5 c# asp.net-core-mvc .net-core asp.net-core

我已经制定了自定义策略要求和处理程序。如果它们不符合要求,它工作正常并返回 403。

我正在尝试返回一个自定义 JSON 对象,其中包含一条关于请求授权失败的原因的消息。这是我正在使用的代码:

if (!_currentUserService.Permissions.CanGetSaleAnalysis)
{
    var mvcContext = context.Resource as Microsoft.AspNet.Mvc.Filters.AuthorizationContext;

    if (mvcContext != null)
    {
        var responseObj = ForbiddenResponseFactory.GetResponse(WorkbookAuthFailure.GetSaleAnalysis);
        mvcContext.Result = new JsonErrorResult(403, responseObj);
    }
}
else
{
    context.Succeed(requirement);
}
Run Code Online (Sandbox Code Playgroud)

似乎 cookie 中间件正在查看质询结果并覆盖响应,因此它不包含我的 JSON 消息......处理这个问题的最佳方法是什么?