代码之家  ›  专栏  ›  技术社区  ›  Mark Amery Harley Holcombe

PasswordHasher方法的用户参数用于什么?

  •  4
  • Mark Amery Harley Holcombe  · 技术社区  · 7 年前

    在身份的非核心版本中, PasswordHasher 是非泛型类型。它的 HashPassword 方法接受一个参数(散列的密码),其 VerifyHashedPassword ,以及提供的用于验证的密码。这很好,因为这意味着我可以使用 PasswordHasher 不需要全部使用整个身份框架。

    Microsoft.AspNetCore.Identity 另一方面 PasswordHasher<TUser> 现在是泛型类,并且 验证HashedPassword 方法采取 user 除了以前存在的参数之外。这对我来说没有多大意义。为什么哈希密码或验证哈希都需要用户对象?它是用来做什么的?

    1 回复  |  直到 7 年前
        1
  •  10
  •   Mark Amery Harley Holcombe    4 年前

    https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs TUser 也没有任何 user 类方法的参数从未被使用过。

    我猜在 IPasswordHasher<TUser> 接口允许特定于应用程序的子类 取决于用户。例如,我可以想象这样一种情况,在两个具有不同用户基础的应用程序合并后,一个应用程序最终不得不处理使用不同算法对其密码进行哈希处理的用户。存储类似 PasswordFormat 然后,用户模型上的字段将允许自定义 根据用户选择要使用的哈希算法。