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 @   ZerryLuo  阅读(170)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示