Пример #1
0
        /// <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();
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        /// <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();
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
 /// <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);
     }
 }