public ActionResult ResetEmail(ResetEmailModel model) { AppUser userEmailCheck = UserManager.FindByEmail(model.newEmail); if (userEmailCheck != null) { ModelState.AddModelError("", "User with that email is already registered"); return(View()); } var userId = HttpContext.User.Identity.GetUserId(); if (ModelState.IsValid) { if (userId != null || userId != string.Empty) { IdentityResult result = UserManager.SetEmail(userId, model.newEmail); if (result.Succeeded) { return(View("Success", new string[] { "Email reset" })); } else { AddErrorsFromResult(result); } } else { return(View("Error", new string[] { "User Not Found" })); } } return(View()); }
public async Task <IActionResult> ResetPassword([FromBody] ResetEmailModel model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { throw new ApplicationException("Akun dengan email tersebut tidak ditemukan."); } var resetPassword = await _userManager.ResetPasswordAsync(user, model.Code, model.Password); if (resetPassword.Succeeded) { return(Ok(MessageHelper.Success <object>(new { Message = "Password berhasil direset, silahkan cek email anda." }))); } return(BadRequest(ModelState)); }
public async Task SendResetPasswordEmailAsync([FromBody] ResetEmailModel model) { var user = await userManager.FindByEmailAsync(model.Email); if (user == null) { return; } var token = await userManager.GeneratePasswordResetTokenAsync(user); var html = $@"<h2>H::Judge</h2> <p>您好 {user.UserName},感谢使用 H::Judge!</p> <p>您请求的重置密码验证码为:</p><small>{token}</small><p>请使用此验证码重置您的密码</p> <hr /> <small>{DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()}</small>"; await emailSender.SendAsync( "重置密码 - H::Judge", html, EmailType.Account, new[] { model.Email }); }