public async Task <IActionResult> Register(RegistrerUserViewModel model) { if (!ModelState.IsValid) { return(View(model)); // Если данные в форме некоректны, то на доработку } using (_Logger.BeginScope("Регистрация нового пользователя {0}", model.UserName)) { var new_user = new User // Создаём нового пользователя { UserName = model.UserName }; // Пытаемся зарегистрировать его в системе с указанным паролем var creation_result = await _UserManager.CreateAsync(new_user, model.Password); if (creation_result.Succeeded) // Если получилось { await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте _Logger.LogInformation("Пользователь {0} успешно зарегистрирован в системе", model.UserName); return(RedirectToAction("Index", "Home")); // и отправляем на главную страницу } foreach (var error in creation_result.Errors) // Если что-то пошло не так... { ModelState.AddModelError("", error.Description); // Все ошибки заносим в состояние модели } _Logger.LogWarning("Ошибка при регистарции пользователя {0}: {1}", model.UserName, string.Join(", ", creation_result.Errors.Select(error => error.Description))); } return(View(model)); // И модель отправляем на доработку }
public async Task <IActionResult> Register(RegistrerUserViewModel model) { if (!ModelState.IsValid) // проверка данных формы { return(View(model)); } using (_logger.BeginScope($"Регистрация нового пользователя {model.UserName}")) { var newUser = new User { UserName = model.UserName }; // Регистрируем в системе var createResult = await _userManager.CreateAsync(newUser, model.Password); if (createResult.Succeeded) // Если получилось { await _signInManager.SignInAsync(newUser, false); // Логиним на сайте _logger.LogInformation($"Пользователь {model.UserName} успешно зарегистрирован"); return(RedirectToAction("Index", "Home")); // редирект на главную } foreach (var error in createResult.Errors) // Если ошибки { ModelState.AddModelError("", error.Description); // добавляем их к состоянию модели } _logger.LogWarning($"Ошибка регистрации пользователя {model.UserName}: " + string.Join(", ", createResult.Errors.Select(e => e.Description))); } return(View(model)); // возвращем модель браузеру }
public async Task <IActionResult> Register(RegistrerUserViewModel model) { if (!ModelState.IsValid) { return(View(model)); // Если данные в форме некоректны, то на доработку } var new_user = new User // Создаём нового пользователя { UserName = model.UserName }; // Пытаемся зарегистрировать его в системе с указанным паролем var creation_result = await _UserManager.CreateAsync(new_user, model.Password); if (creation_result.Succeeded) // Если получилось { await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте return(RedirectToAction("Index", "Home")); // и отправляем на главную страницу } foreach (var error in creation_result.Errors) // Если что-то пошло не так... { ModelState.AddModelError("", error.Description); // Все ошибки заносим в состояние модели } return(View(model)); // И модель отправляем на доработку }
public async Task <IActionResult> Register(RegistrerUserViewModel model, [FromServices] ILogger <AccountController> logger) { if (!ModelState.IsValid) { logger.LogWarning($"Ошибка модели"); return(View(model)); // Если данные в форме некоректны, то на доработку } var new_user = new User // Создаём нового пользователя { UserName = model.UserName }; using (logger.BeginScope("Регистрация началась")) { // Пытаемся зарегистрировать его в системе с указанным паролем var creation_result = await _UserManager.CreateAsync(new_user, model.Password); if (creation_result.Succeeded) // Если получилось { await _SignInManager.SignInAsync(new_user, false); // То сразу логиним его на сайте logger.LogInformation($"Пользователь успешно зарегистрирован { model.UserName }"); return(RedirectToAction("Index", "Home")); // и отправляем на главную страницу } foreach (var error in creation_result.Errors) // Если что-то пошло не так... { ModelState.AddModelError("", error.Description); // Все ошибки заносим в состояние модели } } return(View(model)); // И модель отправляем на доработку }
public async Task <ActionResult> Registrar(RegistrerUserViewModel registerUser) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new IdentityUser { UserName = registerUser.Email, Email = registerUser.Email, EmailConfirmed = true }; var result = await _userManager.CreateAsync(user, registerUser.Password); if (result.Succeeded) { await _signInManager.SignInAsync(user, false); return(Ok(new { sucess = true, data = await GerarJwt(user.Email) })); } var listErrors = new List <string>(); foreach (var error in result.Errors) { listErrors.Add(error.Description); } return(BadRequest(new { sucess = false, errors = listErrors })); }