Пытаюсь изменить пароль пользователя таким способом:
await _userManager.ResetPasswordAsync(user, code, editViewModel.Password);
user - объект ApplicationUser,
code - код сброса пароля, сгенерированный функцией _userManager.GeneratePasswordResetTokenAsync,
editViewModel.Password - строка, содержащая новый пароль.
При попытке изменить пароль результатом возвращается ошибка User name 'Дмитрий' is invalid, can only contain letters or digits. (Дмитрий - имя пользователя). Как отменить валидацию имени пользователя при изменении пароля?
Ответ
Допустимые символы в имени пользователя задаются в UserOptions.AllowedUserNameCharacters. Вот значение по умолчанию:
///
Судя по коду, проверку можно отключить, сбросив эту строку на пустую или на null
else if (!string.IsNullOrEmpty(manager.Options.User.AllowedUserNameCharacters) &&
userName.Any(c => !manager.Options.User.AllowedUserNameCharacters.Contains(c)))
{
errors.Add(Describer.InvalidUserName(userName));
}
Обнулить эту настройку можно в методе ConfigureServices
services.AddIdentity
Комментариев нет:
Отправить комментарий