asp.net-mvc - 只允许从特定的电子邮件域注册

标签 asp.net-mvc regex

我正在开发一个使用新 MVC 站点模板附带的内置帐户模型/ Controller 的站点。我希望只允许人们在他们的电子邮件地址中使用两个特定域之一进行注册。

例如,如果他们使用@domain1.co.uk 或@domain2.co.uk,他们可以注册,但不能使用其他域(例如 Gmail、Yahoo 等)。

如果有人能指出我正确的方向,那就太好了。

最佳答案

如果使用 MVC3 默认站点,您将有一个 /Models/AccountModels.cs文件。您可以在那里添加正则表达式以进行客户端*和服务器端验证。

public class RegisterModel
{
    ...

    [Required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email address")]
    [RegularExpression(@"^[a-zA-Z0-9._%+-]+(@domain1\.co\.uk|@domain2\.co\.uk)$", ErrorMessage = "Registration limited to domain1 and domain2.")]
    public string Email { get; set; }

    ...
}

您需要计算出最适合您的要求的表达式。

*客户端验证假定您的 View 引用 jquery.validate 脚本并具有 Html.ValidationMessageFor(m => m.Email)和/或 Html.ValidationSummary() ,它应该是默认的。

关于asp.net-mvc - 只允许从特定的电子邮件域注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554524/

相关文章:

asp.net-mvc - ASP MVC 如何注销但保持在同一页面上

asp.net-mvc - 使用 C# 以编程方式向 MVC Controller 验证 Azure Ad/OpenId 并获取重定向 uri

asp.net-mvc - MVC模型要求为true

jquery - $.getJSON 使用空参数调用 MVC Controller 操作

JavaScript 正则表达式查找与开始和结束模式匹配的所有子字符串

c# - 在某些情况下禁用 Required 验证属性

java - 使用replaceAll()替换部分匹配模式

java - 删除多次出现的单词

javascript - Javascript 中带有数字点的模式验证

sql - 使用 Oracle SQL 检索字符串中的特定字符串