我最近将我的VS 2013更新为Update 4,其中包含IdentityConfig.cs
下名为App_Start
的类文件。在文件内部,有一部分代码允许我配置密码要求:
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = true,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = true,
};
我将长度更改为RequiredLength = 10
(例如),然后我通过进入Register
来尝试创建新用户来运行项目,这就是我遇到的问题:
当我输入少于6个字符的密码时,会显示一条错误消息"Passwords must be at least 6 characters"
;
当我输入介于6-9个字符之间的密码时,它会显示错误消息Passwords must be at least 10 characters"
。为什么会发生这种情况,我该如何解决?
答案 0 :(得分:3)
首先,如果您实际发布了REAL错误消息,它会有所帮助。您刚刚复制并粘贴了其中一个并更改了数字。真正的第一个错误信息应该是:
"密码长度必须至少为6个字符"而不是"密码必须至少为6个字符"这是您在消息不同时处理不同验证的第一条线索。
如果您查看AccountModels.cs,您将在RegisterViewModel中看到:
[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; }
请注意,stringlength的最小长度设置为6。将其更改为10。