public async Task <IActionResult> Register([FromBody] RegisterAccountRequest request) { if (request == null) { return(BadRequest()); } var user = new ApplicationUser { UserName = request.EMail, Email = request.EMail }; var result = await userManager.CreateAsync(user, request.Password); if (result.Succeeded) { // Generate Confirmation Token for the User: var confirmationCode = await userManager.GenerateEmailConfirmationTokenAsync(user); // Generate the Callback URL for the Confirmation: var confirmationUrl = Url.EmailConfirmationLink(user.Id, confirmationCode, Request.Scheme); // Send the Mail: await emailConfirmationService.SendEmailConfirmationAsync(user, confirmationUrl); return(Ok()); } return(BadRequest()); }
public async Task <IActionResult> OnPostAsync() { try { if (ModelState.IsValid) { if (await _userManager.FindByEmailAsync(SignUpViewModel.Email) != null) { ModelState.AddModelError("SignUpViewModel.Email", "Пользователь с данным Email уже существует"); } else { User user = _mapper.Map <SignUpViewModel, User>(SignUpViewModel); var result = await _userManager.CreateAsync(user, SignUpViewModel.Password); string confirmationToken = _userManager.GenerateEmailConfirmationTokenAsync(user).Result; string confirmationLink = Url.Action("ConfirmEmail", "EmailConfirmation", new { userid = user.Id, token = confirmationToken }, protocol: HttpContext.Request.Scheme); await _emailConfirmationService.SendEmailConfirmationAsync(user, confirmationLink); if (result.Succeeded) { return(RedirectToPagePermanent("Info", "GetInfoMessage", new { message = "Ссылка для подтверждения почты выслана вам на вашу почту: " + user.Email })); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } return(Page()); } else { return(Page()); } } catch (Exception e) { _logger.LogError(e, "Error while getting page SignUp"); return(NotFound()); } }