核心 ASP.NET 标识框架仅允许 @company.com 注册



如何在具有身份框架的 ASP.NET Core Web 应用程序中只允许@companyname.com电子邮件地址?

在我的应用程序中,我有不同的角色和两个电子邮件地址,company.comcompany.cs

谢谢

如果使用基架标识,则可以添加自定义验证属性并将其应用于"注册电子邮件地址"属性。

为了创建自定义验证属性,您需要创建一个从基类继承ValidationAttribute类并重写其IsValid()方法的类。

public class IdentityEmailAttribute:ValidationAttribute
{
    protected override ValidationResult IsValid (object value, ValidationContext validationContext)
    {
        string email = value.ToString();
        if (email.EndsWith("@companyname.com") == false)
        {
            return new ValidationResult("Invalid Email Address which does not end with @companyname.com");
        }
        return ValidationResult.Success;
    }
}

创建后,您可以在 Register.cshtml 中将 [IdentityEmail] 属性应用于 InputModel 的 Email 属性.cs:

public class InputModel
    {
        [Required]
        [EmailAddress]
        [Display(Name = "Email")]
        [IdentityEmail]
        public string Email { get; set; }
        //other properties
    }

相关内容

最新更新