Jquery ASP.NET MVC密码验证程序不';t警告客户端的一些强制性要求?
我使用的是ASP.NETMVC5,它连接了一个不引人注目的验证器,用于客户端的开箱即用验证。我通过以下方式设置我的Jquery ASP.NET MVC密码验证程序不';t警告客户端的一些强制性要求?,jquery,validation,asp.net-mvc-5,passwords,unobtrusive-validation,Jquery,Validation,Asp.net Mvc 5,Passwords,Unobtrusive Validation,我使用的是ASP.NETMVC5,它连接了一个不引人注目的验证器,用于客户端的开箱即用验证。我通过以下方式设置我的IdentityConfig.cs: manager.PasswordValidator = new PasswordValidator { RequiredLength = 8, RequireNonLetterOrDigit = true, RequireDigit = true, RequireLowercase = true, Requ
IdentityConfig.cs
:
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 8,
RequireNonLetterOrDigit = true,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = true,
};
当密码不太长时,客户端验证会正确发出警告。但它似乎没有验证其余的标准(至少一个数字,至少在大写字母上,至少一个小写字母上,甚至没有提到特殊字符)。在我的用例中,在客户端使用这些是很重要的
启用这些额外检查的最佳方法是什么?我应该设置自己的非突兀验证规则吗?这将如何干扰不引人注目的验证?在您的属性中添加一个
RegularExpressionAttribute
。根据斯里尼瓦斯的回答,以下内容应符合您的规则
[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", ErrorMessage = "...")]
public string Password { get; set; }
在我看来
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m =>m.Password)
您只需使用应用于property@StephenMuecke谢谢,这是一个非常好的线索!我正在尝试
[RegularExpression(@“^(.{0,7}|[^0-9]*.[^A-Z]*.[A-zA-Z0-9]*)$,“密码必须至少有…”
但它似乎没有触发。该正则表达式与您想要的不匹配。我怀疑您想要第四个正则表达式?@StephenMuecke您可以添加您的建议作为答案。上面的反向逻辑表达式不起作用,当我使用“^((?=.*\d)(?=.[A-Z])(?=.[A-Z])(?=.[A-Z])(?=\W.{8,}$”
验证触发并起作用