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)); }