身份框架ASP.NET Core仅允许@ company.com注册

时间:2019-01-08 15:17:35

标签: asp.net-core-mvc asp.net-identity

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

在我的应用程序中,我具有不同的角色,并且两个电子邮件地址分别为company.comcompany.cs

谢谢

1 个答案:

答案 0 :(得分:0)

如果您使用脚手架身份,则可以添加custom validation属性并将其应用到您的Register EmailAddress属性。

要创建自定义验证属性,您需要创建一个从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.cs中的InputModel的Email属性顶部应用[IdentityEmail]属性:

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

        //other properties
    }