private void Login(string username, string password) //Update for actual security checking { string message; // for any messageboxes to follow string caption; string hashedPassword = CreateHash(password); // create sha256 hash of password RADGSHALibrary.User user = new RADGSHALibrary.User(username, hashedPassword); DBConnectionObject db; try { db = DBConnectionObject.getInstance(); } catch (Exception e) { message = e.Message; caption = "Error!"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBox.Show(message, caption, buttons); return; } bool valid = db.validateLogin(user); if (valid) { Console.WriteLine("validated successfully"); } else { Console.WriteLine("invalid login attempt"); } if (valid) { bool isAdmin = db.validateUserType(user); if (isAdmin) { Console.Write("User is admin user"); } else { Console.WriteLine("User is not admin user"); } user.setAdmin(isAdmin); usernameTextBox.Text = ""; passwordTextBox.Text = ""; this.Hide(); RADGSHALibrary.User validatedUserNoPassword = new RADGSHALibrary.User(user.getUsername(), "", user.isAdmin()); MainPage M = new MainPage(validatedUserNoPassword, this); M.Closed += (s, args) => this.Close(); M.Show(); } else { message = "Error: User name or password is not valid!"; caption = "Error!"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBox.Show(message, caption, buttons); numberOfTries++; } if (numberOfTries == 5) { message = "Error: You've unsuccessfully tried to log in five times. You've been locked out for 10 minutes."; caption = "Error!"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBox.Show(message, caption, buttons); loginButton.Enabled = false; timerLogin.Enabled = true; } }