Я создаю веб-приложение в .Net Core 3.0, и все работает гладко, но я обнаружил небольшую проблему:
У меня есть способ создать пользователя в хорошо работающем контроллере, который сохраняет пользователяи все нормально.
Но мне нужно иметь другой метод в другом контроллере, который также может создавать пользователей, и этот метод является копированием / вставкой из другого работающего метода, использующего тот же UserManager, которыйIOC ', он возвращает успех, но в конце пользователь не в базе данных.
Это должен быть другой метод, как этот, если он предназначен для создания пользователей для других людей, где пароль генерируется автоматически.Пароль проходит и не выдает никакой ошибки в createAsync (), и он соответствует настройкам в файле startup.cs
Я изменил метод, попытался стимулировать контекст EF, чтобы проверить, был ли ончто-то на нем, но нет ....
[HttpPut]
[Authorize(Roles = "Admin")]
[Route("CreateEmployee")]
public async Task<IActionResult> CreateEmployee([FromQuery]string email)
{
var user = new IdentityUser { UserName = email, Email = email };
var pw = UserHelper.GenerateRandomPassword(10);
var userResult = await _UserManager.CreateAsync(user, pw);
var resultRole = await _UserManager.AddToRoleAsync(user, "Employee");
var code = await _UserManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.Page(
"/Account/ConfirmEmail",
pageHandler: null,
values: new { userId = user.Id, code = code },
protocol: Request.Scheme);
EmailSender sender = new EmailSender();
await sender.SendWelcomeEmailAsync("Email Header",
new NewUserData { ConfirmUrl = callbackUrl, Password = pw, Email = email, Username = $"" });
}
Проверка объекта userResult: userResult .succeded = true uuserResult er.Errors.Count = 0
Проверка объекта resultRole: resultRole.successded = true resultRole.Errors.Count = 0