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

问题描述:

在非核心版本的身份,PasswordHasher的是一个非泛型类型。它HashPassword方法只有一个参数(散列密码),其VerifyHashedPassword方法只有两个(由HashPassword以前生成的密码哈希,并且提供的密码进行验证。这是伟大的,因为这意味着我可以使用PasswordHasher不全力入和使用的整个身份框架。PasswordHasher方法的用户参数是什么?

Microsoft.AspNetCore.Identity,而另一方面,PasswordHasher<TUser>现在是一个通用类,以及HashPasswordVerifyHashedPassword方法采取user参数除了先前存在的参数。这没有多大意义了我。为什么无论是散列密码或验证哈希要求用户对象?什么用的?

没有。我们可以在源在https://github.com/aspnet/Identity/blob/dev/src/Microsoft.Extensions.Identity.Core/PasswordHasher.cs,无论是类型参数TUser也没有任何的user参数类的方法都用过看到,在所有。

我猜想在IPasswordHasher<TUser>接口上使用这些参数的想法是允许应用程序特定的子类依赖于用户。例如,其中的两个应用程序具有不同userbases合并后,应用程序最终不得不面对用户其密码使用不同的算法进行散列我可以想像的情况。然后在用户模型存储就像一个PasswordFormat领域将允许自定义IPasswordHasher<TUser>选择哪个散列算法来使用基于用户。