我正在开发一个使用新 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/