Пример #1
0
        private void btnRegister_Click(object sender, RoutedEventArgs e)
        {
            // rekisteröintinappia painettaessa, asetetaan muuttujiin käyttäjänimi ja salasanat
            string username = txbUsername.Text;
            string pwd1     = pwbPass1.Password;
            string pwd2     = pwbPass2.Password;

            // tarkistetaan onko salasanakentässä 5 merkkiä tai alle
            if (pwd1.Length <= 5)
            {
                MessageBox.Show($"The password needs to be at least 6 characters long.");
                pwbPass1.Password = "";
                pwbPass2.Password = "";
                return;
            }

            // tarkistetaan onko käyttäjänimi vapaana
            bool res = DatabaseAccess.CheckIfUserExistInSQLite(username);

            if (res == true)
            {
                MessageBox.Show($"Username '{username}' is already in use.", "Information", MessageBoxButton.OK);
                txbUsername.Text  = "";
                pwbPass1.Password = "";
                pwbPass2.Password = "";
                return;
            }
            // tarkistetaan täsmääkö salasanat
            if (pwd1 != pwd2)
            {
                MessageBox.Show("Password doesn't match!", "Error", MessageBoxButton.OK);
                pwbPass1.Password = "";
                pwbPass2.Password = "";
                return;
            }
            // luodaan käyttäjälle salt
            string salt = Security.ComputeSaltString();
            // saltataan ja hashataan salasana
            string pwdHashSalted = Security.ComputeSha256Hash(pwd1 + salt);
            // tallennetaan tiedot tietokantaan
            bool res2 = DatabaseAccess.SaveUserToSQL(username, salt, pwdHashSalted);

            try
            {   // Näytetään joko onnistumisboksi tai epäonnistumisboksi, kun tallennetaan
                if (res2 == true)
                {
                    MessageBox.Show($"User '{username}' saved succesfully.", "Information", MessageBoxButton.OK);
                    Login loginWindow = new Login();
                    loginWindow.Show();
                    this.Close();
                }
                else
                {
                    MessageBox.Show($"User '{username}' can not be saved.", "Error", MessageBoxButton.OK);
                    txbUsername.Text  = "";
                    pwbPass1.Password = "";
                    pwbPass2.Password = "";
                }
            }
            catch (InvalidOperationException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK);
            }
        }