c# - 从 Web API 2 中的操作过滤器返回错误的 Http 状态代码

标签 c# http asp.net-web-api asp.net-core action-filter

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

context.Result = new JsonResult(new { Error = "JWT token 已过期。"});

此代码的问题在于它仍然抛出状态代码 200。我希望它在 HTTP 级别失败并抛出状态代码 400。我该怎么做?

最佳答案

BadRequestObjectResult将返回 400。

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

关于c# - 从 Web API 2 中的操作过滤器返回错误的 Http 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893001/

相关文章:

c# - 如何读取外部应用程序 DrawText 绘制的文本

c# - 获取 Microsoft Live 帐户的电子邮件地址

asp.net-mvc - 如何在 Web Api 中将对象作为参数传递

c# - FromBody 不绑定(bind) Inherited Id

c# - 为什么Web Api(.Net Core)总是返回JSON而忽略ContentType中的值?

c# - 文本框值不保存

c# - 使数据库类静态化?

java - Apache Http 组件 - 设置 cookie

javascript - Facebook 更改页面 URL 但实际上并未更改页面

c - 将 Firefox 重定向到本地主机上的代理