public async Task <ActionResult> RedefinePassword(RedefinePasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            bool valid = await UserManager.VerifyUserTokenAsync(model.UserId, "ResetPassword", model.Token);

            if (!valid)
            {
                Notify.Error(Res.PasswordRecoveryLinkInvalidMessage);
                return(Redirect("LogOn"));
            }

            IdentityResult result = await UserManager.ResetPasswordAsync(model.UserId, model.Token, model.NewPassword);

            if (!result.Succeeded)
            {
                Notify.Error(Resources.CommonStrings.RequestUnexpectedErrorMessage);
                return(View(model));
            }

            model.SuccessMessage = Res.PasswordChangeSuccessMessage;
            return(View(model));
        }
Exemple #2
0
        public async Task <IActionResult> RedefinePassword(RedefinePasswordViewModel redefinePasswordViewModel)
        {
            if (ModelState.IsValid)
            {
                _logger.LogInformation("Pegando usuário pela matrícula");
                var user = await _userRepository.GetById(redefinePasswordViewModel.UserId);

                PasswordHasher <User> passwordHasher = new PasswordHasher <User>();
                DateTime date = redefinePasswordViewModel.UpdateDate;

                if (passwordHasher.VerifyHashedPassword(user, user.PasswordHash, redefinePasswordViewModel.Password) != PasswordVerificationResult.Failed)
                {
                    _logger.LogInformation("Informações corretas. Atualizando usuário");

                    user.UpdateDate   = date;
                    user.PasswordHash = passwordHasher.HashPassword(user, redefinePasswordViewModel.NewPassword);

                    await _userRepository.UpdateUser(user);

                    return(RedirectToAction("Index", "Users"));
                }

                _logger.LogInformation("Informações inválidas");
                ModelState.AddModelError("", "Senha inválida");
            }
            _logger.LogError("Informações inválidas");

            return(View(redefinePasswordViewModel));
        }
Exemple #3
0
        public async Task <IActionResult> RedefinePassword(string UserId)
        {
            _logger.LogInformation("Verificando se o usuário existe");
            var user = await _userRepository.GetById(UserId);

            var redefinePasswordViewModel = new RedefinePasswordViewModel
            {
                UserId     = user.Id,
                UpdateDate = DateTime.Now,
                Name       = user.Name,
            };

            _logger.LogInformation("Atualizar usuário");
            return(View(redefinePasswordViewModel));
        }
        public async Task <ActionResult> RedefinePassword(string userId, string token)
        {
            bool valid = await UserManager.VerifyUserTokenAsync(userId, "ResetPassword", token);

            if (!valid)
            {
                Notify.Error(Res.PasswordRecoveryLinkInvalidMessage);
                return(Redirect("LogOn"));
            }

            var model = new RedefinePasswordViewModel()
            {
                Token  = token,
                UserId = userId
            };

            return(View(model));
        }