/// <summary> /// ResetInValidAttemps, sætter ValidAttemps til 0 igen hvis ens login er succesfuld /// </summary> /// <param name="con">con er obejct af Database Connection</param> /// <param name="passWord">passWord er en obejct af modellen LogInd</param> private static void ResetInValidAttemps(MySqlConnection con, LogInd passWord) { string sqlQuery = "UPDATE password SET invalidAttemps = 0 WHERE id = " + passWord.id; MySqlCommand cmd = new MySqlCommand(sqlQuery, con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); }
/// <summary> /// metoden tjekker om stringen passWord er null /// </summary> /// <param name="brugerNavn">Brugernavn tildelt af bruger i textboxen i loginWindow.</param> /// <param name="passWordStr">Brugernavn tildelt af bruger i PasswordBox i loginWindow.</param> /// <param name="logIndWindow"> en instans af windoet LogIndWindow. </param> /// <param name="con">con er obejct af Database Connection.</param> /// <returns> returner true eller false </returns> private static bool validatePaasWord(string brugerNavn, string passWordStr, LogIndWindow logIndWindow, MySqlConnection con) { con.Open(); LogInd passWord = GetPassWord(brugerNavn, con); if (!(passWord == null)) { return(TjekStatus(passWordStr, logIndWindow, con, passWord)); } else { SetErrorMessage(logIndWindow, "Forkert Brugernavn!"); return(false); } }
/// <summary> /// invalidAttempsHandler sætter bruger til blocked vis man har flere forkerte logind end 3 /// </summary> /// <param name="passWord">passWord er en obejct af modellen LogInd</param> /// <param name="con">con er obejct af Database Connection</param> private static void invalidAttempsHandler(LogInd passWord, MySqlConnection con) { string sqlQuery = "UPDATE password SET invalidAttemps = " + (passWord.invalidAttemps + 1); if ((passWord.invalidAttemps + 1) == 3) { sqlQuery = sqlQuery + ", passwordStatus = 'blocked'"; } sqlQuery = sqlQuery + " WHERE id = " + passWord.id; MySqlCommand cmd = new MySqlCommand(sqlQuery, con); con.Open(); cmd.ExecuteNonQuery(); con.Close(); }
/// <summary> /// denne funktioner henter det nyeste password fra databasen /// </summary> /// <param name="brugerNavn">Brugernavn tildelt af bruger i textboxen i loginWindow.</param> /// <param name="con">con er obejct af Database Connection</param> /// <returns> returner pass word fra databasen</returns> private static LogInd GetPassWord(string brugerNavn, MySqlConnection con) { LogInd passWord = null; string sqlQuery = "SELECT pw.id, pw.passwordstatus, pw.employee_id, pw.invalidattemps FROM employee em JOIN password pw ON em.id = pw.employee_id WHERE userid = '" + brugerNavn + "';"; MySqlCommand cmd = new MySqlCommand(sqlQuery, con); using (MySqlDataReader Reader = cmd.ExecuteReader()) { if (Reader.HasRows) { passWord = new LogInd(); while (Reader.Read()) { passWord.id = Reader.GetInt32(Reader.GetOrdinal("id")); passWord.passwordStatus = Reader.GetString(Reader.GetOrdinal("passwordstatus")); passWord.employeeId = Reader.GetInt32(Reader.GetOrdinal("Employee_id")); passWord.invalidAttemps = Reader.GetInt32(Reader.GetOrdinal("invalidAttemps")); } Reader.Close(); } } return(passWord); }
/// <summary> /// TjekStatus metode tjekker i databasen om brugeren er aktiv eller blocked /// </summary> /// <param name="passWordStr">Brugernavn tildelt af bruger i PasswordBox i loginWindow.</param> /// <param name="logIndWindow"> logIndWindow er en instans af windoet LogIndWindow.</param> /// <param name="con">con er obejct af Database Connection.</param> /// <param name="passWord"> passWord er en obejct af modellen LogInd</param> /// <returns> returns true eller false</returns> private static bool TjekStatus(string passWordStr, LogIndWindow logIndWindow, MySqlConnection con, LogInd passWord) { if (passWord.passwordStatus.Equals("aktiv")) { string CurrentPassWord = GetCurrentPassWord(passWord.id, con); con.Close(); if (passWordStr.Equals(CurrentPassWord)) { ResetInValidAttemps(con, passWord); return(true); } else { SetErrorMessage(logIndWindow, "Forkert Password!"); invalidAttempsHandler(passWord, con); return(false); } } else { SetErrorMessage(logIndWindow, "Din konto er " + passWord.passwordStatus + ". Kontakt Admin!"); return(false); } }