ASP.NET MVC 3中的密码数据注释

23

可能是重复问题:
密码验证(正则表达式?)

我正在开发一个 asp.net MVC 3 应用程序,并已应用验证器来验证用户输入的密码。我想确保密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。有没有一个简单的正则表达式可以做到这一点?

    [Required]
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

我想在我的密码字段上添加DataAnnotation。我希望确保密码长度至少为6个字符,不超过18个字符,并且必须包括至少一个大写字母、一个小写字母和一个数字。我需要添加正则表达式吗?或者DataType.password已经可以实现所有这些要求了吗?

请建议。


2
这与实体框架有什么关系? - Ladislav Mrnka
1
不涉及实体框架 - hackp0int
1个回答

37

你必须精确地写出你想要的内容。 写下这个:

[Required]
[StringLength(18, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[RegularExpression(@"^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

3
@Hadas,你能解释一下你在regularExpression数据注释中写了什么吗?我正在尝试构建一个密码要求。 - Parth
1
[RegularExpression("^((?=.[a-z])(?=.[A-Z])(?=.*\d)).+$", ErrorMessage = "错误信息")] - Jose Ortega

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接