【发布时间】:2017-06-19 23:15:02
【问题描述】:
我的任务是确保用户在更改密码时不能使用以前的密码。为此,当身份框架对密码进行哈希处理时,我会存储他们密码的哈希值。
我的问题是如何比较用户新选择的密码的哈希和我保存的他们以前使用的密码的哈希?我需要考虑 Identity 框架使用的盐。
更新:我使用appUserManager.PasswordHasher.HashPassword(passwordToHash) 对密码进行哈希处理,但每次都会创建一个新哈希(我认为这是因为身份框架在内部使用了盐)。
【问题讨论】:
-
这个 aspnetcore 身份还是更早的版本?
-
ASP.NET Identity v2.2
-
我会说覆盖
UserManager<TUser, TKey>.UpdateAsync(TUser user)并使用后端历史记录表。如果用户正在更改他们的密码并且它是历史记录中的 N 个密码之一,请使用IdentityResult.Failed("Cannot reuse password.")拒绝他们。 -
我明白你所说的布拉德,但我想创建一个单独的类来执行检查以前的密码是否未使用以及其他验证。我的问题是当我使用
appUserManager.PasswordHasher.HashPassword(passwordToHash)时。我每次都会得到不同的哈希结果。
标签: asp.net-identity password-hash