public VoidOperationContract ResetPassword(ResetPasswordContract contract) { try { using (NeedAGolferDataContext dataContext = new NeedAGolferDataContext()) { var golferRetriever = RetrieverFactory.CreateInterface <IGolferRetriever>(); var golfer = golferRetriever.SelectByUsernameAndEmail(contract.UserAccount, contract.EmailAddress); string salt = PasswordCrypto.GetSalt(); string hashedPassword = PasswordCrypto.ComputeHash(contract.Password, "SHA256", salt); golfer.PasswordHash = hashedPassword; golfer.PasswordSalt = salt; dataContext.Golfers.Attach(golfer, true); dataContext.SubmitChanges(); dataContext.Connection.Close(); return(new VoidOperationContract() { ErrorMessage = "" }); } } catch (Exception ex) { return(new VoidOperationContract() { ErrorMessage = ex.Message }); } }
public async Task <IActionResult> ResetPassword(ResetPasswordContract model) { await _userService.ResetPsw(new UserDto { Email = model.Email, Password = model.Password }, model.Code); return(RedirectToAction("Index", "Home")); }