如何在Fluent验证中根据字符串列表验证字符串

本文关键字:字符串 验证 列表 Fluent | 更新日期: 2023-09-27 18:26:39

我有一个电子邮件地址字段,针对该字段,客户端验证不允许使用tempmailder.com或disputable.com等少数临时域。

在服务器端,我使用了fluent验证来指定验证规则。

web.config文件中不允许使用逗号分隔字符串的临时域。

有没有一种方法可以指定来验证用户根据不允许的电子邮件域列表输入的值。

RuleFor(x=>x.EMail). and something 

感谢

如何在Fluent验证中根据字符串列表验证字符串

好吧,你可以实现这样的东西:

public class MyObjValidator : AbstractValidator<MyObj> {
        public MyObjValidator()
        {
            // Other rules for my object
            // .
            // .
            RuleFor(o => o.Email)
                .NotEmpty()
                .Must(BeNonBannedDomain)
                .WithMessage("Please specify a valid email address");
        }
        private bool BeNonBannedDomain(string email)
        {
            var domainName = GetDomainName(email); // a method to extract the dmain name from the email
            return !someListOfBannedDomains.Contains(domainName); // a list of all the banned domains that I need to check against.
        }
    }

希望这能有所帮助。