簡體   English   中英

ASP.Net身份手冊密碼哈希

[英]ASP.Net Identity Manual Password Hashing

我正在使用Entity Framework Database First方法和現有數據庫來開發MVC 5 Web應用程序。

我還使用ASP.Net Identity進行授權和身份驗證,但是,我沒有使用內置的Entity Framework代碼,即UserManagerApplicationUser等,而是使用了與Brock Allen類似的方法。

http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer/

我現在正在進行帳戶登錄和注冊,我想先將用戶密碼散列,然后再將其存儲在自定義用戶表中。

我意識到我可以創建自己的實現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.

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