public async Task <IActionResult> Register(RegisterViewModel vm) { if (ModelState.IsValid) { var user = new AppUser { UserName = ShortGuid.NewGuid().ToString(), PhoneNumber = vm.PhoneNumber }; var result = await _userManager.CreateAsync(user, vm.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, vm.PhoneNumber); await _smsSender.SendSmsAsync(vm.PhoneNumber, code); var vmRegisterVerifyCode = new RegisterVerifyCodeViewModel(); vmRegisterVerifyCode.ReturnUrl = Url.Action(nameof(RegisteredConfirmation), GetControllerName <AccountController>(), new { vm.ReturnUrl }); vmRegisterVerifyCode.UserId = user.Id; vmRegisterVerifyCode.PhoneNumber = vm.PhoneNumber; return(View(nameof(RegisterVerifyCode), vmRegisterVerifyCode)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(vm)); }
public async Task <IActionResult> RegisterVerifyCode(RegisterVerifyCodeViewModel vm) { if (!ModelState.IsValid) { return(View(vm)); } if (string.IsNullOrEmpty(vm.UserId)) { AddError("该页面已失效!"); return(View(vm)); } var user = await _userManager.FindByIdAsync(vm.UserId); var result = await _userManager.VerifyAndConfirmPhoneNumberAsync(user, vm.Code); if (!result.Succeeded) { AddErrors(result); return(View(vm)); } return(RedirectToLocal(vm.ReturnUrl)); }