//using System; //using System.ComponentModel.DataAnnotations; //using System.Linq; //using Masuit.Tools.Core.Config; //using Microsoft.Extensions.Configuration; //using Microsoft.Extensions.DependencyInjection; //namespace Masuit.Tools.Core.Validator //{ // /// // /// 邮箱校验 // /// // public class IsEmailAttribute : ValidationAttribute // { // private readonly bool _valid; // public static string EmailAllowKeywordsList; // /// // /// 域白名单 // /// // private string DomainWhiteList { get; } // /// // /// 可在appsetting.json中添加EmailDomainWhiteList配置邮箱域名白名单,逗号分隔 // /// // /// 是否检查邮箱的有效性 // public IsEmailAttribute(bool valid = true) // { // this.DomainWhiteList = CoreConfig.Configuration["EmailDomainWhiteList"] ?? ""; // this._valid = valid; // } // /// // /// 邮箱校验 // /// // /// // /// // public override bool IsValid(object value) // { // if (value == null) // { // this.ErrorMessage = "邮箱不能为空!"; // return false; // } // string email = value as string; // if (email.Length <= 10) // { // this.ErrorMessage = "您输入的邮箱格式不正确!"; // return false; // } // if (email.Length > 256) // { // this.ErrorMessage = "邮箱长度最大允许255个字符!"; // return false; // } // if (this.DomainWhiteList.Split(',', StringSplitOptions.RemoveEmptyEntries).Any(item => email.EndsWith("@" + item))) // { // return true; // } // if (email.MatchEmail(this._valid).isMatch) // { // return true; // } // this.ErrorMessage = "您输入的邮箱格式不正确!"; // return false; // } // } // public static class TestEE // { // public static IServiceCollection ConfigMasuitTools(IServiceCollection services, Action option) // { // MasuitToolOption opt = new MasuitToolOption(); // option?.Invoke(opt); // IsEmailAttribute.EmailAllowKeywordsList = opt.EmailAllowKeywordsList; // return services; // } // public static IServiceCollection ConfigMasuitTools(IServiceCollection services, IConfiguration configuration) // { // IsEmailAttribute.EmailAllowKeywordsList = configuration["EmailAllowKeywordsList"] ?? ""; // return services; // } // } // public class MasuitToolOption // { // /// // /// 邮件地址关键字白名单 // /// // public string EmailAllowKeywordsList { get; set; } // } //}