2017-10-17 35 views
1

在非核心版本的身份,PasswordHasher的是一個非泛型類型。它HashPassword方法只有一個參數(散列密碼),其VerifyHashedPassword方法只有兩個(由HashPassword以前生成的密碼哈希,並且提供的密碼進行驗證。這是偉大的,因爲這意味着我可以使用PasswordHasher不全力入和使用的整個身份框架。PasswordHasher方法的用戶參數是什麼?

Microsoft.AspNetCore.Identity,而另一方面,PasswordHasher<TUser>現在是一個通用類,以及HashPasswordVerifyHashedPassword方法採取user參數除了先前存在的參數。這沒有多大意義了我。爲什麼無論是散列密碼或驗證哈希要求用戶對象?什麼用的?

回答

4

沒有。我們可以在源在https://github.com/aspnet/Identity/blob/dev/src/Microsoft.Extensions.Identity.Core/PasswordHasher.cs,無論是類型參數TUser也沒有任何的user參數類的方法都用過看到,在所有。

我猜想在IPasswordHasher<TUser>接口上使用這些參數的想法是允許應用程序特定的子類依賴於用戶。例如,其中的兩個應用程序具有不同userbases合併後,應用程序最終不得不面對用戶其密碼使用不同的算法進行散列我可以想像的情況。然後在用戶模型存儲就像一個PasswordFormat領域將允許自定義IPasswordHasher<TUser>選擇哪個散列算法來使用基於用戶。

相關問題