簡體   English   中英

PasswordHasher 方法的用戶參數是什么?

[英]What's the user parameter to PasswordHasher's methods used for?

在非核心版本的 Identity 中, PasswordHasher是一個非泛型類型。 它的HashPassword方法只需要一個參數(要散列的密碼),它的VerifyHashedPassword方法只需要兩個參數(之前由HashPassword生成的密碼散列,以及提供的要驗證的密碼。這很棒,因為這意味着我可以使用PasswordHasher而無需全力以赴並使用整個身份框架。

另一方面,在Microsoft.AspNetCore.IdentityPasswordHasher<TUser>現在是一個泛型類,並且HashPasswordVerifyHashedPassword方法除了先前存在的參數之外還采用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM