Мне дано требование предоставить пользователям возможность создавать пользователей через интерфейс без пароля. Я пытаюсь выполнить это с помощью ASP.NET Identity.Создание пользователей без пароля с использованием идентификатора ASP.NET
Я могу успешно создать пользователя без пароля с помощью метода Create в UserManager в:
if (vm.ShouldHavePassword)
{
userManager.Create(userToInsert, vm.Password);
}
else
{
userManager.Create(userToInsert);
}
После вызова метода Create, пользователь получает тест успешно сохранен в нашей таблице AspNetUsers. И когда я не предоставляю пароль, столбец PasswordHash в нашей таблице AspNetUsers устанавливается в NULL.
Моя проблема: я не могу войти в качестве тестового пользователя, у которого нет пароля. Ниже приведен вызов метода, который мы используем для проверки учетных данных пользователя:
result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
Я попытался войти в систему как тестовый пользователь, который имеет значение NULL PasswordHash несколько раз. Для этого я не предоставляю пароль в нашей форме входа в систему. В результате пароль NULL передается в метод PasswordSignInAsync. Возвращаемое значение этого метода всегда равно SignInStatus.Failure
.
Использование идентификатора ASP.NET, как настроить код для правильной аутентификации учетных данных пользователя, когда учетные данные содержат NULL-пароль, а пользователь в базе данных содержит NULL PasswordHash? Возможно ли такое?
Возможный дубликат и/или решение https://stackoverflow.com/questions/28110934/asp-net-mvc-identity-login-without-password –
Я уже видел этот вопрос. Он спрашивал, как я могу войти в систему как пользователь _any_, не предоставляя пароль. Я спрашиваю, как я могу войти в систему как конкретный пользователь, у которого нет пароля, сохраненного в базе данных. –
Понял. Вы попробовали код, который он опубликовал? FindByNameAsync и SignInAsync? –