代码之家  ›  专栏  ›  技术社区  ›  Lost

从webapi2中的actionfilters返回错误的httpstatuscode

  •  2
  • Lost  · 技术社区  · 7 年前

    我在webapi.netcore环境中,正在使用ActionFilters处理一些JWT授权代码。现在,出现任何错误时,我的代码如下所示:

    context.Result = new JsonResult(new { Error = "JWT Token is expired."});

    这个代码的问题是它仍然抛出statuscode 200。我希望它在http级别失败并抛出statuscode 400。我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Shaun Luttin    7 年前

    BadRequestObjectResult 将返回400。

    public class MyActionFilter : IActionFilter
    {
        public void OnActionExecuting(ActionExecutingContext context)
        {
            context.Result = new BadRequestObjectResult(new {Error = "JWT Token is expired."});
        }
    }