仅允许特定的电子邮件地址

时间:2014-11-08 23:57:57

标签: c# .net asp.net-mvc validation override

我正在开发一个MVC项目,我需要验证特定组的电子邮件地址。例如,只有使用emailID@stanford.edu的人才能注册。我确实尝试过数据注释,但它只验证电子邮件地址,而不是子字符串。如何检查电子邮件地址是否包含@ stanford.edu?先感谢您。

所以,根据我尝试过的建议,但是我在构建过程中遇到错误: 找不到合适的方法来覆盖。我试过这个。

/*
 * Attribute to validate schools
 */
public class ValidateSchoolAttribute : ValidationAttribute
{
    public string stanfordEmail { get; set; }
    public string harvardEmail { get; set; }

    public override bool IsValid(String value)
    {
        if (value == null){
            return true;
        }

        char[] delimiterCharacter = { '@' };
        String text = value;

        String[] words = text.Split(delimiterCharacter);

        if( words.Equals("stanford.edu") ||words.Equals("harvard.edu")  ){
               return true;
        }
        else{
              return false;
        }

    }
}

2 个答案:

答案 0 :(得分:2)

您可以使用[RegularExpression]属性

[RegularExpression(@".*@(harvard|stanford)\.edu")]
[EmailAddress]
public string Email { get; set; }

答案 1 :(得分:1)

你应该制作自定义验证属性。

类似这样的事情

public class OnlyStanfordEmailAttribute: ValidationAttribute

然后覆盖IsValid函数。

如果您也想要客户端验证,则可以关注this tutorial