예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }