ASP.NET 身份中的密码错误消息

Error Message for Password in ASP.NET Identity

我最近将我的 VS 2013 更新到 Update 4,它在 App_Start 下带有一个名为 IdentityConfig.cs 的 class 文件。在文件中,有一部分代码允许我配置密码要求:

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

首先,如果您真的发布了真实的错误消息,将会有所帮助。您只是复制并粘贴其中一个并更改了号码。真正的第一条错误信息应该是:

"The Password must be at least 6 characters long" 而不是 "Passwords must be at least 6 characters" 这是当消息不同时您正在处理不同验证的第一个线索。

如果您查看 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; }

请注意,字符串长度的最小长度设置为 6。将其更改为 10。