如何在 .Net Core 中返回错误状态代码 401 的自定义错误消息?

Posted

技术标签:

【中文标题】如何在 .Net Core 中返回错误状态代码 401 的自定义错误消息?【英文标题】:How can I return custom error message for error status code 401 in .Net Core? 【发布时间】:2020-05-29 22:07:14 【问题描述】:

请帮助我在 .Net Core WebApi 中显示错误状态代码 401 的自定义错误消息。

【问题讨论】:

这能回答你的问题吗? How to return a specific status code and no contents from Controller? 整个 API 或特定操作都需要它吗? 【参考方案1】:

ASP Core 文档解释了如何处理自定义错误响应:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling?view=aspnetcore-3.1#usestatuscodepages

在你的情况下,你可以在你的启动Configure方法中尝试app.UseStatusCodePages(添加对Microsoft.AspNetCore.Http的引用)

if (env.IsDevelopment())

    app.UseDeveloperExceptionPage();

else

    app.UseHsts();

app.UseStatusCodePages(async context =>

    if (context.HttpContext.Response.StatusCode == 401)
    
        await context.HttpContext.Response.WriteAsync("Custom Unauthorized request");
    
);
//other middlewars

行动:

[HttpGet]
public ActionResult Get()

   return Unauthorized();

【讨论】:

以上是关于如何在 .Net Core 中返回错误状态代码 401 的自定义错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何反序列化 422 无法处理的实体错误模型并将错误绑定到 asp.net core razor pages 模型状态

如何在 asp.net core 2.1 中使用自定义消息设置状态代码?

ASP.Net Core 2 错误处理:如何在 Http Response 中返回格式化的异常详细信息?

ASP.Net Core 2.0 - 如何从中间件返回自定义 json 或 xml 响应?

当 url 响应状态代码为 400 时如何使用 C# .Net Core 5 Blazor 服务器端应用程序中的中间件重定向到主页

如何在 .NET Core 上隐藏 System.Exception 错误?