ASP.NET Core добавляет дополнительный пароль к IdentityUser - PullRequest
0 голосов
/ 12 марта 2019

Я использую ASP.NET Core 2.2 с EF Core. У меня есть User класс, который выглядит так:

public class User : IdentityUser
{
    public string FirstName { get; set; }

    public string LastName { get; set; }
}

Я хотел бы добавить свойство PIN, которое будет действовать как дополнительный пароль для особо безопасных операций. Пользователь входит в систему, но если он хочет сделать что-то более особенное (например, отправить деньги), ему будет предложено ввести свой PIN-код.

Мой вопрос заключается в том, как проще всего хэшировать строку, чтобы я не сохранял ПИН в виде обычного текста в БД?

1 Ответ

1 голос
/ 13 марта 2019

Вы можете использовать интерфейс IPasswordHasher , когда пользователь регистрируется, вы можете создать хеш пароля, который будет сохранен в базе данных (свойство PIN), когда вам нужно проверить, чтобы хэшировать предоставленный пароль / PIN и сравните его с сохраненным хешем.

Например, используйте DI, чтобы задействовать расширение:

public readonly IPasswordHasher<ApplicationUser> _passwordHasher;
public HomeController(IPasswordHasher<ApplicationUser> passwordHasher )
{
    _passwordHasher = passwordHasher;
}

Чтобы создать хешированный пароль:

var hasedPassword = _passwordHasher.HashPassword(null,"Password");

Для проверки:

var successResult = _passwordHasher.VerifyHashedPassword(null, hasedPassword , "Password");

Вы также можете обратиться к документу: Хэш-пароли в ASP.NET Core .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...