ASP.NET Core Web API 验证错误处理
创始人
2024-09-15 13:30:21
0

在ASP.NET Core Web API中处理验证错误有多种方法,以下是一种示例解决方法:

  1. 在Startup.cs文件中进行配置。
public void ConfigureServices(IServiceCollection services)
{
    // 添加验证服务
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidateAudience = true,
                ValidateLifetime = true,
                ValidateIssuerSigningKey = true,
                ValidIssuer = Configuration["Jwt:Issuer"],
                ValidAudience = Configuration["Jwt:Audience"],
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
            };
        });

    // 添加MVC服务
    services.AddControllers()
        .ConfigureApiBehaviorOptions(options =>
        {
            // 关闭默认的模型验证错误处理
            options.SuppressModelStateInvalidFilter = true;
        });
}
  1. 在Controller中处理模型验证错误。
[ApiController]
[Route("api/[controller]")]
public class UserController : ControllerBase
{
    [HttpPost]
    public IActionResult CreateUser([FromBody] UserModel user)
    {
        if (!ModelState.IsValid)
        {
            // 获取所有验证错误
            var errors = ModelState.Values.SelectMany(v => v.Errors)
                .Select(e => e.ErrorMessage)
                .ToList();

            return BadRequest(errors);
        }

        // 处理创建用户的逻辑

        return Ok();
    }
}

在上述代码中,我们首先在Startup.cs文件中添加了验证服务并配置了JWT验证参数。然后,我们使用AddControllers().ConfigureApiBehaviorOptions()方法禁用了默认的模型验证错误处理。最后,在UserController中的CreateUser方法中,我们使用ModelState.IsValid检查模型是否验证通过,如果不通过,我们获取所有的验证错误并返回BadRequest响应。

这样,当有验证错误发生时,客户端将收到一个包含错误信息的BadRequest响应。

相关内容

热门资讯

发现一款“广西老友玩老师输怎么... 发现一款“广西老友玩老师输怎么版”一向有辅助开挂工具(有挂总结);亲,广西老友玩老师输怎么版这款游戏...
透视数据“epoker透视”原... 透视数据“epoker透视”原先有辅助挂(有挂方针)这是一款可以让一直输的玩家,快速成为一个“必胜”...
记者发布“友玩广西辅助联系方式... 记者发布“友玩广西辅助联系方式”原生有开挂辅助挂(有挂技术);无需打开直接搜索薇:136704302...
玩家必看科普“蜀渝牌乐汇修改器... 玩家必看科普“蜀渝牌乐汇修改器”从前有开挂辅助脚本(证实有挂)1、下载安装好蜀渝牌乐汇修改器,进入游...
透视计算“白金岛小程序插件最新... >>您好:白金岛小程序插件最新版本更新内容确实是有挂的,很多玩家在这款白金岛小程序插件最新版本更新内...
必知教程“欢聚水鱼智能辅助脚本... 大家好,今天小编来为大家解答欢聚水鱼智能辅助脚本怎么用这个问题咨询软件客服可以免费测试直接加微信(1...
揭秘一下“海豹3+1辅助器”原... 揭秘一下“海豹3+1辅助器”原先有辅助工具(发现有挂) 了解更多开挂安装加(136704302)微信...
透视安装“心悦透视辅助器免费”... 透视安装“心悦透视辅助器免费”最初有开挂辅助脚本(有挂方针);无需打开直接搜索打开薇:1367043...
透视系统“wpk刷入池率脚本”... 透视系统“wpk刷入池率脚本”固有有辅助下载(今日头条);打开点击测试直接进入微信(13670430...
揭秘“闽游13水辅助”素来有辅... 揭秘“闽游13水辅助”素来有辅助安装(有挂辅助)您好:闽游13水辅助这款游戏可以开挂,确实是有挂的,...