How to use custom IPasswordHasher?

I implement IPasswordHasher

public class MyPasswordHasher : IPasswordHasher { public string HashPassword(string password) { using (SHA256 mySHA256 = SHA256Managed.Create()) { byte[] hash = mySHA256.ComputeHash(Encoding.UTF8.GetBytes(password.ToString())); StringBuilder hashSB = new StringBuilder(); for (int i = 0; i < hash.Length; i++) { hashSB.Append(hash[i].ToString("x2")); } return hashSB.ToString(); } } public PasswordVerificationResult VerifyHashedPassword( string hashedPassword, string providedPassword) { if (hashedPassword == HashPassword(providedPassword)) return PasswordVerificationResult.Success; else return PasswordVerificationResult.Failed; } } 

I am writing in IdentityConfig

 manager.PasswordHasher = new MyPasswordHasher(); 

but var user = await UserManager.FindAsync(model.Email, model.Password); AccountController / Login does not use MyPasswordHaser.

How can I use it in id 2.1?

My project https://yadi.sk/d/NUL56SMccCtqd

+6
source share
2 answers

You must connect it to the UserManager:

 public class AppUserManager : UserManager<AppUser, int> { public AppUserManager(AppUserStore a_store) : base(a_store) { _container = a_container; _emailService = _container.GetInstance<IEmailService>(); PasswordHasher = new AppPasswordHasher(); } } 
+2
source

Using:

 PasswordHasher = new MyPasswordHasher(); 

in UserManager ctor!

+1
source

Source: https://habr.com/ru/post/977068/


All Articles