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));
        }
示例#3
0
        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 });
        }