Передать идентификатор пользователя в пользовательский IPasswordHasher? - PullRequest
0 голосов
/ 20 ноября 2018

Я создаю пользовательское хранилище для входа на свой сайт MVC5 с использованием OWIN и ASP.NET Identity.

У меня в пользовательском хранилище есть поле для пароля base-64 и соли base-64,Чтобы зашифровать пароль, я добавляю соль к простому текстовому паролю.

Я создал этот хэш пароля:

public class PasswordHasher : IPasswordHasher
{
    public string HashPassword(string password)
    {
        using (SHA1 sha1 = SHA1.Create())
        {
            byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(password);
            byte[] hashBytes = sha1.ComputeHash(inputBytes);

            // Convert the byte array to hexadecimal string
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < hashBytes.Length; i++)
            {
                sb.Append(hashBytes[i].ToString("X2"));
            }
            return sb.ToString();
        }
    }

    public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword)
    {
        if (hashedPassword == HashPassword(providedPassword))
            return PasswordVerificationResult.Success;
        else
            return PasswordVerificationResult.Failed;
    }
}

Проблема заключается в том, что у меня нетIdentityUser для объединения поля соли.

Я не хочу добавлять ссылку на Microsoft.AspNetCore.Identity.Я знаю, что в библиотеке есть хеш-пароль, который получает объект User, чтобы я мог делать то, что хочу.Но в этом случае у меня нет объекта пользователя.Есть ли способ получить его?

Спасибо, Хайме

...