asp.net core 中的请求数据校验

在平时开发过程中,我们需要对请求数据的合法性进行校验,一般来说我们可以通过客户端来进行校验,从而避免通过服务器校验,但是不排除一些恶意人员绕过客户端直接向服务器发送请求,所以服务器校验必不可少。

我们以下的例子主要是通过FluentValidation数据校验框架来进行验证:

1.先在项目中安装FluentValidation.AspNetCore   NuGet包:

 

 

 2.注册服务:

builder.Services.AddFluentValidation(fv=>{
Assembly assembly=Assembly.GetExecutingAssembly();
fv.RegisterValidatorsFromAssembly(assembly);});

3.编写模型类:

public class Login
    {
        /// <summary>
        /// 邮箱
        /// </summary>
        public string Email{ get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        public string Password { get; set; }
    }

4.编写校验类,继承自AbstractValidator

    /// <summary>
    /// 登陆账号验证
    /// </summary>
    public class LoginAccoutValidation : AbstractValidator<Login>//尖括号里写的是需要验证的模型类
    {
        public LoginAccoutValidation()
        {

            RuleFor(x=>x.Email).NotNull().EmailAddress()
.Must(v=>v.EndsWith("@qq.com")||v.EndsWith("@163.com"))
.WithMessage("只支持QQ和163邮箱");
            RuleFor(x=>x.Email).NotNull().Length(3,10)
.WithMessage("密码长度必须介于3到10之间");


} }

其中有许多内置校验方法,比如说NotNull(非空)、EmailAddress(邮箱地址)、Length(字符串长度)

5.编写一个接口,用Login作为入参参数

刻意创造非法字符,用postman来测试,看返回结果

posted @ 2022-09-13 14:35  ZerryLuo  阅读(164)  评论(0编辑  收藏  举报