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");
            }
        }
示例#2
0
        // 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.");
            }
        }