public static Boolean ResetPassword(AccountViewModel_ResetPassword resetPasswordView, AccountViewModel_VerifyPasswordResetToken verifyTokenView, string ConnectionString, SecurityLogic security) { try { DataAccess dataAccess = new DataAccess(ConnectionString, "spAccounts_ResetPassword"); dataAccess.SetParamater_Input("@TokenID", verifyTokenView.TokenID, SqlDbType.VarChar, 100); dataAccess.SetParamater_Input("@TokenKey", security.GenerateSaltedHash(verifyTokenView.TokenKey, Encoding.ASCII.GetBytes(verifyTokenView.TokenSalt)), SqlDbType.VarChar, 100); dataAccess.SetParamater_Input("@Password", security.GenerateSaltedHash(resetPasswordView.password, Encoding.ASCII.GetBytes(resetPasswordView.passwordSalt)), SqlDbType.VarChar, 100); dataAccess.SetParamater_Input("@Salt", resetPasswordView.passwordSalt, SqlDbType.VarChar, 100); dataAccess.SetParamater_Output("@outAccountID", SqlDbType.Int); dataAccess.ExecuteNonQuery(); resetPasswordView.AccountID = (int?)(dataAccess.GetParamater("@outAccountID")); return(true); } catch (Exception ex) { resetPasswordView.Errors.Add(ex.Message); return(false); } }
public static Boolean ResetPassword(AccountViewModel_ResetPassword resetPasswordView, AccountViewModel_VerifyPasswordResetToken verifyTokenView, string ConnectionString, SecurityLogic security) { //Checks if a valid password was provided if (resetPasswordView.password == null || resetPasswordView.password == "") { resetPasswordView.Errors.Add("Please Provide a Password"); } if (resetPasswordView.Errors.Count > 0) { return(false); } //Checks for a valid Reset Password Token (AccountID > 0 signifies a successful VerifyPasswordResetToken Execution) if (verifyTokenView.AccountID > 0 || verifyTokenView.Errors.Count() == 0) { //Generates a Salt and Resets the Password resetPasswordView.passwordSalt = security.GenerateSalt(); if (AccountDataAccess.ResetPassword(resetPasswordView, verifyTokenView, ConnectionString, security)) { //Post Validation Checks if (resetPasswordView.AccountID == null) { return(false); } if (resetPasswordView.AccountID <= 0) { return(false); } if (resetPasswordView.Errors.Count > 0) { return(false); } return(true); } } return(false); }