Вы возвращали пустую строку как хеш
public Task<string> GetPasswordHashAsync(MyIdentityUser user, CancellationToken cancellationToken)
{
return Task.FromResult(string.Empty);
}
Но даже пустой пароль не приводит к пустой строке хеша.Кроме того, используются разные алгоритмы (которые можно настроить в Startup.cs при добавлении Identity).
Вы должны будете вернуть реальный, вычисленный хеш от определенного пароля, если вы хотите, чтобы он был успешным, в противном случае он распознает введенный пароль, который возвращает другой хеш, чем "сохраненный", и вызовет ошибку при входе в систему.,
То, что вы фальсифицируете / внедряете хранилище пользователей, не означает, что проверки хешей выполняться не будут.
public Task<string> GetPasswordHashAsync(MyIdentityUser user, CancellationToken cancellationToken)
{
var hash = new PasswordHasher<MyIdentityUser>().HashPassword(user, "asdf");
return Task.FromResult(hash)
}
Подойдет, хотя имейте в виду, что если вы измените алгоритм хэширования пароля, он может потерпеть неудачу, поскольку вы new
его используете, что означает, что он использует параметры по умолчанию для хэширования пароля.