如何在 dotnet core Web Api 中返回自定义错误消息

Posted

技术标签:

【中文标题】如何在 dotnet core Web Api 中返回自定义错误消息【英文标题】:How to return custom error messages in dotnet core Web Api 【发布时间】:2021-11-27 12:26:54 【问题描述】:

我正在使用 dot net core 编写一个 web api。当用户输入和我想要返回的无效用户名或密码、作为 json 响应的无效用户名或密码时,该功能很简单。我如何在 dot net core 中做到这一点,我已经设法返回了这个

用户名或密码无效

我怎样才能改为返回这个

"message": "Invalid Login credentials!"

这是我的控制器

  [HttpPost]
            [Route("/api/[controller]/signin")]
            public async Task<IActionResult> Login([FromBody] LoginViewModel loginmodel)
            
                if (!ModelState.IsValid)
                
                    //return BadRequestModelState();
                    return Conflict(new ErrorViewModel("Wrong data sent"));
                
    
    
                Users user = await _userService.GetByEmail(loginmodel.Username);
                if (user == null)
                
                   
                    return this.StatusCode(StatusCodes.Status401Unauthorized, "Invalid username or password");
                
    
                bool isCorrectPassword = _passwordHasher.VerifyPassword(loginmodel.Password, user.Password);
                if (!isCorrectPassword)
                
                    return this.StatusCode(StatusCodes.Status401Unauthorized, "Invalid username or password");
                

【问题讨论】:

【参考方案1】:

最简单的方法之一

return StatusCode(StatusCodes.Status401Unauthorized, new  message = "Invalid username or password" );

【讨论】:

以上是关于如何在 dotnet core Web Api 中返回自定义错误消息的主要内容,如果未能解决你的问题,请参考以下文章

dotnet core docker web api没有连接

在 dotnet core web api ::ffff:127.0.0.1 中获取客户端 IP 地址

在 ASP.NET MVC 5 控制器中使用 POST 从 dotnet Core Web API 下载文件

Web api dotnet core 中的 Api 版本控制错误的自定义错误响应

使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)

无法在asp dotnet core web api中创建HttpGet和HttpDelete。