public ActionResult ResetPasswordPost(ResetPassword model)
 {
     if (ModelState.IsValid)
         return _userRepository.ResetPassword(model, "ResetPassword", "Login");
     return View(model);
 }
 public ActionResult ResetPassword(ResetPassword model)
 {
     ModelState.Clear();
     return View(model);
 }
 public ActionResult ResetPassword(ResetPassword model, string view, string redirectView,
     string redirectController = "")
 {
     var userName = Helper.Decrypt(model.UserName);
     var user = _userStore.UserManager.FindByName(userName);
     if (user == null)
     {
         ModelState.AddModelError("User authentication", "User authentication failed. Invalid username");
         return View(view, model);
     }
     if (model.NewPassword != model.ConfirmPassword)
     {
         ModelState.AddModelError("User authentication", "New password and Confirm password does not match");
         return View(view, model);
     }
     var token = _userStore.UserManager.GeneratePasswordResetToken(user.Id);
     var resetuserPasswordResult = _userStore.UserManager.ResetPassword(user.Id, token, model.NewPassword);
     if (resetuserPasswordResult.Succeeded)
         return string.IsNullOrEmpty(redirectController)
             ? RedirectToActionPermanent(redirectView)
             : RedirectToActionPermanent(redirectView, redirectController);
     resetuserPasswordResult.Errors.ToList().ForEach(x => ModelState.AddModelError("User authentication", x));
     return View(view, model);
 }
        public ActionResult AuthenticateUserSecurityAnswer(ForgotPassword model, string view)
        {
            var user = _userStore.UserManager.FindByName(model.UserName);
            model.SecurityQuestions = _securityQuestionRepository.GetAll();
            if (user == null)
            {
                ModelState.AddModelError("User authentication", "User authentication failed. Please enter correct user name");
                return View(view, model);
            }
            int questionId;
            int.TryParse(model.SecurityQuestionId, out questionId);

            var userAuthentication = user.SecurityQuestionId == questionId && user.SecurityAnswer == model.Answer;

            if (userAuthentication)
            {
                var changePassword = new ResetPassword
                {
                    UserName = Helper.Encrypt(model.UserName)
                };
                return RedirectToAction("ResetPassword", changePassword);
            }

            ModelState.AddModelError("User authentication", "User authentication failed. Please enter correct answer");
            return View(view, model);
        }
 public ActionResult ResetPassword(ResetPassword model, string view, string redirectView, string redirectController = "")
 {
     return _userRepository.ResetPassword(model, view, redirectView, redirectController);
 }