1

我正在尝试构建一个演示应用程序以获得 Asp.Net Mvc 5 开发经验。在这些日子里,我正在尝试建立一个站点设置。

我有一个名为 Settings 的模型。并且有如下属性。

    public int PasswordRequiredLength { get; set; }
    public bool PasswordRequireNonLetterOrDigit { get; set; }
    public bool PasswordRequireDigit { get; set; }
    public bool PasswordRequireLowercase { get; set; }
    public bool PasswordRequireUppercase { get; set; }
    public bool UseAlphaNumericCharacters {get; set; }          

在 ApplicationUserManager 我做了这些修改。

        // Configure validation logic for passwords
        manager.PasswordValidator = new PasswordValidator
        {
            RequiredLength = CacheHelper.Settings.PasswordRequiredLength > 0 ? CacheHelper.Settings.PasswordRequiredLength : 8,
            RequireNonLetterOrDigit = CacheHelper.Settings.PasswordRequireNonLetterOrDigit ? true : false,
            RequireDigit = CacheHelper.Settings.PasswordRequireDigit ? true : false,
            RequireLowercase = CacheHelper.Settings.PasswordRequireLowercase ? true : false,
            RequireUppercase = CacheHelper.Settings.PasswordRequireUppercase ? true : false
        };

因此,密码验证将在运行时指定。到目前为止,一切都很好。应用程序更灵活一点。但!RegisterViewModel 怎么样。

有如下属性

    [StringLength(20, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 5)]
    [RegularExpression("^([a-zA-Z0-9]{5,20})$", ErrorMessage = "The {0} must contain only alphanumeric characters")]
    [Display(ResourceType = typeof (Resources.Translations), Name = "Username")]
    public string UserName { get; set; }

    [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; }

我如何验证密码的最小值,长度?或 AlphaNumeric 字符,如果为PasswordRequireNonLetterOrDigit假?用户名也是如此。这取决于UseAlphaNumericCharacters

谢谢你。

4

0 回答 0