Hachage manuel des mots de passe ASP.Net Identity

Je développe une application Web MVC 5 utilisant l’approche Entity Framework Database First avec une firebase database existante .

J’utilise également ASP.Net Identity pour mon autorisation et mon authentification. Cependant, je n’utilise pas le code Entity Framework intégré, à savoir UserManager , ApplicationUser, etc. J’utilise plutôt une approche similaire à celle de Brock Allen.

A primer on OWIN cookie authentication middleware for the ASP.NET developer

Je travaille maintenant sur la connexion et l’enregistrement du compte et je souhaite hacher le mot de passe de l’utilisateur avant de le stocker dans ma table utilisateur personnalisée.

Je réalise que je peux créer ma propre classe personnalisée qui implémente IPasswordHasher , mais c’est là que je rest bloqué. Vous trouverez ci-dessous un exemple de la façon dont cela devrait fonctionner. Cependant, je ne suis pas tout à fait sûr que cela soit exact.

public class CustomPassword : IPasswordHasher { public ssortingng HashPassword(ssortingng password) { return password; } public PasswordVerificationResult VerifyHashedPassword(ssortingng hashedPassword, ssortingng providedPassword) { if (hashedPassword.Equals(providedPassword)) return PasswordVerificationResult.Success; else return PasswordVerificationResult.Failed; } } 

Ce sont mes questions:

Q1 : Lors de l’enregistrement d’un nouveau compte utilisateur et lorsque je passe le mot de passe de l’utilisateur dans la méthode HashPassword à partir de mon contrôleur de compte, je souhaite que le mot de passe de l’utilisateur soit haché et renvoyé sous forme de chaîne. Cependant, je ne sais pas quel code mettre dans la fonction HashPassword pour le faire.

 CustomPassword pwd = new CustomPassword(); Ssortingng UserPassword = "test@123"; Ssortingng HashedNewPassword = pwd.HashPassword(UserPassword); 

Q2 : Lorsqu’un utilisateur se connecte ensuite au site Web, j’aimerais prendre son mot de passe fourni, récupérer le mot de passe haché de la table des utilisateurs de la firebase database, puis les comparer dans la méthode VerifyHashedPassword , mais encore une fois, je ne connais pas le code. consiste à comparer une chaîne hachée à une chaîne non hachée.

J’apprécierais grandement tout conseil sur la façon de procéder.

Merci.

Après avoir créé l’instance de UserManager, atsortingbuez la propriété passwordhasher à votre CustomPasswordHasher.

 UserManager UserManager = new UserManager(store); UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher 

Utilisez UserManager pour rechercher un utilisateur avec un nom d’utilisateur et un mot de passe.