//[ValidateAntiForgeryToken] public async Task <ActionResult <UserForgotPassword> > ForgotPassword(UserForgotPassword forgotPasswordModel) { if (!ModelState.IsValid) { return(BadRequest(forgotPasswordModel)); } var user = await _userManager.FindByEmailAsync(forgotPasswordModel.Email); if (user == null) { return(BadRequest("User Not Found")); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); var callback = Url.Action(nameof(ResetPassword), "UserAccount", new { token, email = user.Email }, Request.Scheme); var message = new EmailMessage(new string[] { user.Email }, "Password reset request", token, "Forgot"); var userResponse = new UserConfirmation { token = token, Email = user.Email }; _emailSender.SendEmail(message); return(Ok(userResponse)); }
public ActionResult Index(ForgotPasswordModel model) { if (ModelState.IsValid) { var user = UnitOfWork.Users.GetByEmailOrNull(model.Email); var forgotPassword = new UserForgotPassword() { CreatedDate = DateTime.Now, CreatorIpAddress = new IpAddressResolver(HttpContext).GetUserHostIp(), RequestGuid = Guid.NewGuid() }; user.UserForgotPasswords.Add(forgotPassword); UnitOfWork.SaveChanges(); var emailArgs = new ResetPasswordNotificationEmailModel(user.Id) { UserForgotPasswordId = forgotPassword.Id }; _schedulerService.EmailSync(emailArgs); return(RedirectToAction("Success")); } return(View(model)); }
public ActionResult ForgotPassword(UserForgotPassword model) { if (!ModelState.IsValid) { return(View(model)); } return(View()); }
public void ForgotPassword(UserForgotPassword entitie) { //nota: Para este caso resultaria talvez mas util que regresara un booleano ó //que regrese todo el item del usuario, y ocupemos el campo que necesitemos. if (_UserRepository.FindUserByEmail(entitie.Email) == "") { throw new Exception("El usuario no es valido"); } //FALTA: Enviar el password que se encontro al correo que proporciono el usuario o una pagina para generarlo de nuevo. }
public async Task <IActionResult> ForgotPassword([FromBody] UserForgotPassword model) { var user = await _repository.FindUserByUserName(model.Email); if (user != null) { await _repository.SendEmailPasswordReset(model.Email, model.CallbackUrl, user.FullName); return(Json(new { result = true, message = "The reset password link was sent." })); } return(Json(new { result = false, message = "Email doesn't exist in the system" })); }
private bool TryValidateForgotPasswordRequest(UserForgotPassword forgotPasswordRequest, out string error) { error = ""; if (forgotPasswordRequest == null) { error = "Reset Password key not found"; } else if (forgotPasswordRequest.ApprovedDateTime != null || forgotPasswordRequest.IsExpired) { error = "Reset Password url expired"; } return(string.IsNullOrEmpty(error)); }
public ActionResult ForgotPassword(UserForgotPassword entitie) { try { _userProcessor.ForgotPassword(entitie); } catch (Exception ex) { return(View("Error", ex)); } ViewData["suscess"] = "Se ha enviado una notificación a su correo"; return(View("Suscess")); }
public IActionResult ResetPassword(ResetPasswordRequest model) { try { _authService.ResetPassword(model); UserForgotPassword userResetPassword = new UserForgotPassword { Message = "Password reset successful, you can now login" }; return(Ok(userResetPassword)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public IActionResult ForgotPassword(ForgotPasswordRequest model) { try { var verification = _authService.ForgotPassword(model, Request.Headers["origin"]); var user = _userService.GetUserByEmail(model.Email); _emailService.SendPasswordResetEmail(verification, user, Request.Headers["origin"]); UserForgotPassword userForgotPassword = new UserForgotPassword { Message = "Password reset successful, you can now login" }; return(Ok(userForgotPassword)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public ActionResult ForgotPassword(UserForgotPassword user) { try { User student = (from p in db.Users where p.UserId == user.UserId && p.Password==user.OldPassword select p).SingleOrDefault(); if (student != null) { student.Password = user.NewPassword; user.ClickedDateTime = DateTime.Now; user.WasPasswordChanged = true; user.UserClicked = true; db.SaveChanges(); } return View(); } catch (Exception ex) { return View(); } }
public async Task <IActionResult> Recover([FromBody] UserForgotPassword userForgot) { if (!await _context.Usuarios.AnyAsync(x => x.Email == userForgot.Email)) { return(NotFound()); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_config.GetSection("AppSettings:ResetPassToken").Value); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Email, userForgot.Email) }), Expires = DateTime.UtcNow.AddHours(2), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var resetTokenString = tokenHandler.WriteToken(token); return(Ok(new { resetTokenString })); }