【问题标题】:allowing only a particular email address只允许特定的电子邮件地址
【发布时间】:2014-11-08 23:57:57
【问题描述】:

我正在处理一个 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;
        }

    }
}

【问题讨论】:

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


    【解决方案1】:

    您可以使用[RegularExpression] 属性

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

    【讨论】:

    • 这是一个很棒的方法。从来没想过。
    【解决方案2】:

    你应该自定义验证属性。

    类似的东西

    public class OnlyStanfordEmailAttribute: ValidationAttribute

    然后覆盖IsValid函数。

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

    【讨论】:

    • 尝试谷歌搜索string split C#,提示:用户string.Split()
    猜你喜欢
    • 2017-11-08
    • 2023-03-31
    • 2015-01-23
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2021-01-06
    • 1970-01-01
    相关资源
    最近更新 更多