Я работаю с Microsoft.AspNetCore.Identity.UserManager и пытаюсь издеваться над созданием нового пользователя. Фактически, он создает нового пользователя с именем пользователя, электронной почтой и т. Д. c. но свойство пароля ha sh по-прежнему равно нулю.
Вот как я настраивал mock usermanager с некоторыми дополнительными настройками:
var store = new Mock<IUserPasswordStore<User>>();
var validator = new UserValidator<User>();
var passValidator = new PasswordValidator<User>();
var mgr = new Mock<UserManager<User>>(store.Object, null, null, null, null, null, null, null, null);
mgr.Object.UserValidators.Add(validator);
mgr.Object.PasswordValidators.Add(passValidator);
mgr.Object.PasswordHasher = new PasswordHasher<User>();
mgr.Object.Options = AuthenticationRules.DefaultAuthenticationRules();
List<User> users= new List<User>();
mgr.Setup(x => x.DeleteAsync(It.IsAny<User>())).ReturnsAsync(IdentityResult.Success);
mgr.Setup(x => x.CreateAsync(It.IsAny<User>(), It.IsAny<string>())).ReturnsAsync(IdentityResult.Success).Callback<User, string>((x, y) => users.Add(x));
mgr.Setup(x => x.UpdateAsync(It.IsAny<User>())).ReturnsAsync(IdentityResult.Success);
DefaultAuthenticationRules возвращает это:
public static IdentityOptions DefaultAuthenticationRules(IdentityOptions identityOptions = null)
{
if(identityOptions == null)
identityOptions = new IdentityOptions();
identityOptions.User.RequireUniqueEmail = true;
identityOptions.Password.RequireNonAlphanumeric = false;
identityOptions.Password.RequiredUniqueChars = 0;
return identityOptions;
}
Затем я передаю mgr .Объект к методу, который обрабатывает создание нового пользователя, где 'Object' заполнен _userManager
var creationResult = await _userManager.CreateAsync(_user, _registrationModel.Password);
if (!creationResult.Succeeded)
return false;
return true;
_registrationModel.Password IS заполнен.
Так что теперь, когда установка добавляет нового пользователя в обратном вызове в список пользователей, пользователь заполняется без пароля ha sh. Я не совсем уверен, что мне здесь не хватает. Я что-то упускаю в mgr.Setup?
Заранее спасибо