[英]ASP.Net Identity Manual Password Hashing
我正在使用Entity Framework Database First方法和現有數據庫來開發MVC 5 Web應用程序。
我還使用ASP.Net Identity進行授權和身份驗證,但是,我沒有使用內置的Entity Framework代碼,即UserManager , ApplicationUser等,而是使用了與Brock Allen類似的方法。
我現在正在進行帳戶登錄和注冊,我想先將用戶密碼散列,然后再將其存儲在自定義用戶表中。
我意識到我可以創建自己的實現IPasswordHasher的自定義類,但是,這就是我遇到的問題。 下面顯示了我認為應該如何工作的模型,但是,我不確定這是否正確。
public class CustomPassword : IPasswordHasher
{
public string HashPassword(string password)
{
return password;
}
public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword)
{
if (hashedPassword.Equals(providedPassword))
return PasswordVerificationResult.Success;
else return PasswordVerificationResult.Failed;
}
}
這些是我的問題:
Q1 :注冊一個新的用戶帳戶時,我將用戶密碼從我的帳戶控制器傳遞到HashPassword方法中,就像這樣,我希望用戶密碼經過哈希處理並以字符串形式返回,但是,我不知道要輸入什么代碼放入HashPassword函數即可。
CustomPassword pwd = new CustomPassword();
String UserPassword = "test@123";
String HashedNewPassword = pwd.HashPassword(UserPassword);
Q2 :當用戶然后登錄到網站時,我想使用他們提供的密碼,從數據庫用戶表中檢索哈希密碼,然后在VerifyHashedPassword方法中進行比較,但是同樣,我不知道代碼是什么是將哈希字符串與非哈希字符串進行比較。
我將不勝感激任何有關如何執行此操作的建議。
謝謝。
創建UserManager實例后,將passwordhasher屬性分配給CustomPasswordHasher
UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher
使用UserManager查找具有用戶名和密碼的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.