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

arr*_*iff 3 c# .net-core asp.net-core-webapi

我正在使用 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");
                }
}
Run Code Online (Sandbox Code Playgroud)

And*_*ver 6

最简单的方法之一

return StatusCode(StatusCodes.Status401Unauthorized, new { message = "Invalid username or password" });
Run Code Online (Sandbox Code Playgroud)