在ASPNet中更改密码验证器类。身份命名空间会影响现有密码吗?

时间:2019-10-10 13:55:00

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

我正在研究一个现有的ASPNet MVC项目,该项目添加了“忘记密码”功能,并且在配置PasswordValidator时,我想知道如果进行任何更改,这将如何影响现有的生产用户。

    //Configure validation logic for passwords       
    manager.PasswordValidator = new PasswordValidator
    {
        RequiredLength = 6,
        RequireNonLetterOrDigit = false,
        RequireDigit = false,
        RequireLowercase = false,
        RequireUppercase = false,
    };

这是之前配置PasswordValidation的方式。如果我进行更改以使验证器更加严格,这会影响已经拥有更多“宽松”密码的现有生产用户吗?

1 个答案:

答案 0 :(得分:0)

在.NET中,密码仅在创建期间进行验证。创建后,如果您更改验证规则,则在用户再次进行更改之前,不会根据新规则重新验证存储在数据存储中的密码。至少,密码在您的数据存储区中已加密。根据安全设置,密码可能会被散列。无法检索散列的密码以进行重新验证(只能比较散列)。此外,解密密码并重新验证它们将是一个巨大的处理负担,并可能会带来安全漏洞。 .NET不会这样做。您不必担心此更改会影响现有的生产用户。