public async Task <IActionResult> Register(ViewModels.Members.Register registerMember) { if (ModelState.IsValid) { var newMember = _mapper.Map <ApplicationUser>(registerMember); var result = await _memberService.RegisterAsync(newMember, registerMember.Password); if (result.Succeeded) { var authCode = await _userManager.GenerateEmailConfirmationTokenAsync(newMember); authCode = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(authCode)); string tempMail = System.IO.File.ReadAllText("Views/Shared/RegisterEmailTemplate.html"); UriBuilder validateUrl = new UriBuilder("http", "localhost", Request.Host.Port ?? 5000) { Path = Url.Action("EmailValidate", "Members", new { Account = newMember.UserName, AuthCode = authCode }) }; string mailBody = _mailService.GetRegiesterMailBody(tempMail, newMember.Name, validateUrl.ToString().Replace("%3F", "?")); await _mailService.SendRegisterMailAsync(mailBody, newMember.Email); StatusMessageHelper.AddMessage(message: "註冊成功,請去收信進行Email驗證", dismissible: false, keep: true); return(RedirectToAction("RegisterResult")); } else { foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } } } registerMember.Password = null; registerMember.PasswordCheck = null; return(View(registerMember)); }
public IActionResult AccountCheck(ViewModels.Members.Register registerMember) { return(Json(_memberService.AccountCheckAsync(registerMember.Account))); }