Exemple #1
0
        public IActionResult ResetPassword(NewPasswordViewModel newPasswordViewModel)
        {
            string secureSalt     = null;
            string hashedPassword = null;

            if (ModelState.IsValid)
            {
                if (!string.IsNullOrEmpty(newPasswordViewModel.TokenKey))
                {
                    //Validate token
                    if (_identityRepository.ValidateToken(newPasswordViewModel.TokenKey.Trim()))
                    {
                        //Password Hashing
                        AspNetUser user = _identityRepository.GetUser(User.Identity.Name);
                        secureSalt     = HashSecurity.GetSalt();
                        hashedPassword = _hasher.HashPassword(user, newPasswordViewModel.Password + secureSalt);

                        //Save Password
                        if (_identityRepository.SavePassword(newPasswordViewModel.TokenKey, hashedPassword, secureSalt, true))
                        {
                            return(Redirect(GenericHelper.DecodeUrl(newPasswordViewModel.ReturnUrl)));
                        }
                    }
                    //Invalid token
                    else
                    {
                        return(Redirect(Url.Content("login?forgotflag=error")));
                    }
                }

                //If no redirection is performed then
                _logger.LogError("Token key is empty or null");
            }
            else
            {
                ModelState.AddModelError("Error", "Please provide the Password and Confirm Password");
            }
            return(View(newPasswordViewModel));
        }