首页 > 解决方案 > Asp.Net Identity 2 中的密码验证

问题描述

我的应用程序的密码格式在 IdentityConfig.cs 中实现,如下所示:

manager.PasswordValidator = new PasswordValidator
{
    RequiredLength = 6,
    RequireNonLetterOrDigit = true,
    RequireDigit = true,
    RequireLowercase = true,
    RequireUppercase = true,
};

但是,验证消息是“密码必须至少包含一个非字母或数字字符”,这对大多数用户来说并不那么清楚。

我想改变它,所以我添加了一个自定义验证,如下所示:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class PasswordAttribute : ValidationAttribute
{
    public override string FormatErrorMessage(string name)
    {
        return "The password should be a combination of upper case, lower case letters, digits and special characters";
    }
    public override bool IsValid(object value)
    {
        if (value == null) return false;

        if (value.ToString().Length == 8)
            return true;
        else
            return false;
    }
}

我还在模型中提到了这个验证,如下所示:

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

但是,密码验证消息仍然与以前相同。我错过了什么?如何更改密码字段的默认验证消息?

有没有办法修改 IdentityConfig.cs 中的验证消息?

标签: c#asp.net-mvcasp.net-identity

解决方案


推荐阅读