如何在具有身份框架的 ASP.NET Core Web 应用程序中只允许@companyname.com
电子邮件地址?
在我的应用程序中,我有不同的角色和两个电子邮件地址,company.com
和company.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
}