如何仅在带有身份框架的ASP.NET Core Web应用程序中允许@companyname.com
个电子邮件地址?
在我的应用程序中,我具有不同的角色,并且两个电子邮件地址分别为company.com
和company.cs
。
谢谢
答案 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
}