void Submit(object obj) { string password = (obj as PasswordBox).Password; string encryptedString = EncryptionHelper.Encrypt(password); tblUser user = service.GetUserByUserNameAndPassword(UserName, encryptedString); if (user != null) { InputDialogSample inputDialog = new InputDialogSample("Enter children or adults to choose cake list:" + "", ""); if (inputDialog.ShowDialog() == true) { if (inputDialog.Answer.ToLower().Equals("children")) { UserMainView mainView = new UserMainView("children", user); mainView.Show(); view.Close(); return; } else if (inputDialog.Answer.ToLower().Equals("adults")) { UserMainView mainView = new UserMainView("adults", user); mainView.Show(); view.Close(); return; } else { MessageBox.Show("Wrong input"); } } } else { MessageBox.Show("Wrong username or password"); } }
// login logic private void LoginExecute(PasswordBox passBox) { try { var userToLogin = (from u in _ctx.Users where u.Login == _userLogin select u); // jeżeli w bazie jest tylko jeden użytkownik o podanej nazwie użytkownika oraz jest to jego pierwsze logowanie if (userToLogin.Count() == 1 && userToLogin.SingleOrDefault().FirstLogin.ToUpper() == "T") { if (PasswordValidator.ValidatePassword(passBox.Password)) { //.Password = passBox.Password; userToLogin.First().Password = ShaConverter.sha256_hash(passBox.Password); // przypisz do konta użytkownika wpisane przez niego hasło userToLogin.First().FirstLogin = "******"; // zmień tryb logowania UserId = userToLogin.First().Id; // przypisz Id użytkownika w celu umożliwienia jego jednoznacznej identyfikacji _userType = userToLogin.First().AccountPrivileges.AccountType; // uzyskaj typ konta użytkownika znajdujący się w bazie danych _ctx.SaveChanges(); // zapisz zmiany _allowToLog = true; // umożliwienie zalogowania się _isWrongPassword = false; } else { Xceed.Wpf.Toolkit.MessageBox.Show("Hasło musi zawierac przynajmniej 8 znaków w tym przynajmniej jedną dużą literę, małą literę oraz cyfrę. " + Environment.NewLine + "Spróbuj ponownie!", "Błąd", MessageBoxButton.OK, MessageBoxImage.Warning); _isWrongPassword = true; } } //.Password == passBox.Password) // jeśli w bazie jest tylko jeden użytkownik o podanej nazwie użytkownika oraz podana nazwa konta oraz przypisane do niego hasło jest poprawne else if (userToLogin.Count() == 1 && userToLogin.First().Login == _userLogin && userToLogin.First().Password == ShaConverter.sha256_hash(passBox.Password)) { _userType = userToLogin.First().AccountPrivileges.AccountType; UserId = userToLogin.First().Id; _allowToLog = true; } // jeżli użytkownik otrzymał dostęp do logowania if (_allowToLog && _isWrongPassword == false) { // w zależności od typu konta uruchom okno główne if (_userType.ToUpper() == "A") { AdminMainView adminMainView = new AdminMainView(_userId); adminMainView.Show(); Application.Current.MainWindow.Hide(); } else if (_userType.ToUpper() == "S") { UserMainView userMainView = new UserMainView(_userId); userMainView.Show(); Application.Current.MainWindow.Hide(); } else { Xceed.Wpf.Toolkit.MessageBox.Show("Błędny typ konta usera", "Błąd", MessageBoxButton.OK, MessageBoxImage.Warning); } } else { if (_isWrongPassword) { passBox.Clear(); } else { Xceed.Wpf.Toolkit.MessageBox.Show("Podana nazwa użytkownika i/lub hasło jest niepoprawne!" + Environment.NewLine + "Spróbuj ponownie!", "Błąd", MessageBoxButton.OK, MessageBoxImage.Warning); UserLogin = string.Empty; passBox.Clear(); } } } catch (Exception ex) { Xceed.Wpf.Toolkit.MessageBox.Show("Błąd połączenia z bazą danych. Skontaktuj się z administratorem.", "Błąd", MessageBoxButton.OK, MessageBoxImage.Warning); //MessageBox.Show(ex.ToString()); //MessageBox.Show("Błąd połączenia z bazą danych. Skontaktuj się z administratorem."); } }