ASP.NET标识中的密码错误消息

时间:2015-01-23 17:11:14

标签: asp.net asp.net-identity

我最近将我的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"。为什么会发生这种情况,我该如何解决?

1 个答案:

答案 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。