为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 ASP.NET Core Web API 中的每个方法中进行模型验证?

如何在 ASP.NET Core Web API 中的每个方法中进行模型验证?

C#
GCT1015 2021-06-17 17:09:52
我正在使用 Web API 进入 ASP.NET Core 2.0。我的第一个方法之一是我的登录:/// <summary>/// API endpoint to login a user/// </summary>/// <param name="data">The login data</param>/// <returns>Unauthorizied if the login fails, The jwt token as string if the login succeded</returns>[AllowAnonymous][Route("login")][HttpPost]public IActionResult Login([FromBody]LoginData data){    var token = _manager.ValidateCredentialsAndGenerateToken(data);    if (token == null)    {        return Unauthorized();    }    else    {        return Ok(token);    }}我LoginData使用 DataAnnotations:public class LoginData{    [Required]    [MaxLength(50)]    public string Username { get; set; }    [Required]    public string Password { get; set; }    [Required]    [MaxLength(16)]    public string IpAddress { get; set; }}因此,ModelState当登录发生时我的自动填充良好,例如密码为空(当然在客户端也应该稍后对其进行验证)。最好的方法是什么检查模型状态,从所有错误中获取可读字符串返回一个BadRequest有这个错误?当然,我可以用辅助方法自己编写。但我想过一个过滤器吗?
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

我强烈推荐使用[ApiController]和其他有助于简化基于 Web API 的项目中的验证的属性。

[ApiController]此属性在进入方法之前为您对模态进行所有基本验证。因此,如果您想进行某种形式的自定义验证,您只需检查模态。


查看完整回答
反对 回复 2021-06-26
  • 3 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信