[英]How to use PasswordHasher's VerifyHashedPassword method?
[英]What's the user parameter to PasswordHasher's methods used for?
在非核心版本的 Identity 中, PasswordHasher是一個非泛型類型。 它的HashPassword
方法只需要一個參數(要散列的密碼),它的VerifyHashedPassword
方法只需要兩個參數(之前由HashPassword
生成的密碼散列,以及提供的要驗證的密碼。這很棒,因為這意味着我可以使用PasswordHasher
而無需全力以赴並使用整個身份框架。
另一方面,在Microsoft.AspNetCore.Identity
, PasswordHasher<TUser>
現在是一個泛型類,並且HashPassword
和VerifyHashedPassword
方法除了先前存在的參數之外還采用user
參數。 這對我來說沒有多大意義。 為什么散列密碼或驗證散列需要用戶對象? 它是做什么用的?
沒什么。 我們可以在https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Extensions.Core/src/PasswordHasher.cs的源代碼中看到,類型參數TUser
和任何user
參數都不是類的方法曾經被使用過。
我猜的在具有這些參數的想法IPasswordHasher<TUser>
界面,以允許應用程序特定的子類做取決於用戶。 例如,我可以想象這樣一種情況,在合並具有不同用戶群的兩個應用程序后,應用程序最終不得不處理使用不同算法對密碼進行哈希處理的用戶。 在用戶模型上存儲類似PasswordFormat
字段的內容將允許自定義IPasswordHasher<TUser>
根據用戶選擇要使用的散列算法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.