ASP.NET MVC身份验证密码所需长度

3
我该怎么让Identity的RequiredLength生效呢?我已经尝试将RequiredLength值更改为10,但我仍然可以使用6位密码进行注册。当我尝试将其更改为5时,它不起作用。它显示需要至少6个字符的密码。我还修改了视图模型,但出现了同样的问题,我认为这是被固定在RequiredLength = 6上。我还尝试清理和重建我的项目。
manager.PasswordValidator = new PasswordValidator
{
    RequiredLength = 10,
    RequireNonLetterOrDigit = false,
    RequireDigit = false,
    RequireLowercase = false,
    RequireUppercase = false,
};


编辑:正在处理注册账户问题,但修改密码无法正常工作。


你正在使用默认的带有个人账户的 MVC5 模板吗? - tmg
3个回答

1
AccountViewModels.cs 文件中的 RegisterViewModel 类中,通过属性进行更改: [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 10)] 并且也将其更改为 ResetPasswordViewModel 中。

1

你可以使用数据注释功能,通过为实体字段添加验证器来实现。

[Required]
[StringLength(10)]
public string RequiredLength { get; set; } 

1
在您的ViewModel中,为Password属性添加一个属性:
[MinLength(10,ErrorMessage = "Minimum length of 10 characters is required")]
public string Password { get; set; }

在您的控制器中的POST方法中,请检查ModelState.IsValid:
public ActionResult Login(YourLoginViewModel model)
{
    if (ModelState.IsValid)
    {
        //Your Login logic here
    }
    else
    {
        return View(model)
    }
}

最后,在您的视图中添加ValidationSummary以显示错误:
@Html.ValidationSummary("")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接