user228 1 year ago
parent
commit
fcac715ef3
1 changed files with 460 additions and 0 deletions
  1. 460 0
      nick/авторизация регистрация.txt

+ 460 - 0
nick/авторизация регистрация.txt

@@ -0,0 +1,460 @@
+Авторизация в проекте ресторана:
+
+
+ public partial class Autorization : Page
+    {
+     
+        public Autorization()
+        {
+            InitializeComponent();
+            DataBase.tbE = new Entities22();
+           
+
+        }
+
+        private void btnBack_Click(object sender, RoutedEventArgs e)
+        {
+            FrameWork.MainFrame.Navigate(new FirstPage());
+        }
+
+        private void btnAuth_Click(object sender, RoutedEventArgs e)
+        {
+
+            string p = Convert.ToString(tbpass.Password.GetHashCode());
+            Users users = DataBase.tbE.Users.FirstOrDefault(x => x.Login == tblog.Text && x.Password == p);
+
+            if (users != null)
+            {
+                if (users.idRole == 1)
+                {
+                    // admin - gerasimov 22!Aaaaa
+                    NavigationService.Navigate(new AdminPage2(users));
+                }
+                else
+                {
+                    MessageBox.Show($"Привет, {users.Name}!", "Успешная авторизация", MessageBoxButton.OK, MessageBoxImage.Information); 
+                   NavigationService.Navigate(new ShowMenu(users.id_client));
+                   NavigationService.Navigate(new PersonalAccount(users));
+                    
+                }
+
+            }       
+            else
+            {
+                MessageBox.Show($"Введенный логин и/или пароль не существуют в системе", "Ошибка авторизации", MessageBoxButton.OK, MessageBoxImage.Error); ;
+
+            }
+
+        }
+
+        private void btngoBack_Click(object sender, RoutedEventArgs e)
+        {
+            NavigationService.Navigate(new FirstPage());
+        }
+
+        private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
+        {
+            NavigationService.Navigate(new Registration());
+        }
+    }
+
+регистрация
+10. Предусмотрите вариант неправильно введенного (или несуществующего) логина или пароля. Также предусмотрите вариант, что у двух пользователей не может быть одного логина (пароли могут совпадать! ) .
+
+Введенный пароль должен удовлетворять следующим требованиям: не менее 1 заглавного латинского символа, не менее 3 строчных латинских символов, не менее 2 цифры и не менее 1 спец. символа. Общая длина пароля не менее 8 символов). Если пользователь ввел некорректный пароль, вывести сообщение, какое именно требование не выполнено. Для проверки удовлетворения пароля требованиям должно быть написано регулярное выражение.
+
+11. После регистрации нового пользователя должно появиться уведомление об успешной регистрации
+
+
+  public partial class Registration : Page
+    {
+
+        List<Country> countryList = DataBase.tbE.Country.ToList();
+        List<City> cityList = DataBase.tbE.City.ToList();
+        List<GenderTable> genderList = DataBase.tbE.GenderTable.ToList();
+        List<Users> users = DataBase.tbE.Users.ToList();
+
+        public Registration()
+        {
+
+            InitializeComponent();
+            DataBase.tbE = new Entities22();
+            cmb2.ItemsSource = cityList;
+            cmb2.SelectedValuePath = "idCity";
+            cmb2.DisplayMemberPath = "nameCity";
+            cmb.ItemsSource = countryList;
+            cmb.SelectedValuePath = "idCountry";
+            cmb.DisplayMemberPath = "nameCountry";
+
+
+
+
+        }
+        private void btnReg_Click(object sender, RoutedEventArgs e)
+        {
+
+            try
+            {
+                if (checkPassword.IsChecked == true)
+                {
+                    tbPassword.Password = tbPasswordTB.Text;
+                }
+                if (checkPassword.IsChecked == false)
+                {
+                    tbPasswordTB.Text = tbPassword.Password;
+                }
+                if (checkPassword2.IsChecked == true)
+                {
+                    tbPassword2.Password = tbPasswordTB1.Text;
+                }
+                if (checkPassword2.IsChecked == false)
+                {
+                    tbPasswordTB1.Text = tbPassword2.Password;
+                }
+
+                int genderList = 0;
+                if (rb1.IsChecked == true) { genderList = 1; }
+                else if (rb2.IsChecked == true) { genderList = 2; }
+
+                /// <summary>
+                /// Проверка на заполненнсть
+                /// </summary>
+                if (!String.IsNullOrEmpty(tbName.Text)
+                    && !String.IsNullOrEmpty(tbSurname.Text)
+                    && !String.IsNullOrEmpty(tbPatronymic.Text)
+                    && !String.IsNullOrEmpty(tbLogin.Text)
+                    && !String.IsNullOrEmpty(tbPassword.Password)
+                    && !String.IsNullOrEmpty(tbPassword2.Password)
+                    && (cmb.SelectedItem != null)
+                    && (cmb2.SelectedItem != null)
+                    && (rb1.IsChecked == true || rb2.IsChecked == true))
+
+                    /// <summary>
+                    /// Проверка на пробелы
+                    /// </summary>
+                    /// 
+                    if (users.Where(x => x.Login.ToString() == tbLogin.Text).Count() == 0)
+                        if (!tbName.Text.Contains(" ")
+                         && !tbSurname.Text.Contains(" ")
+                         && !tbPatronymic.Text.Contains(" ")
+                         && !tbLogin.Text.Contains(" ")
+                         && !tbPassword.Password.Contains(" ")
+                         && !tbPassword2.Password.Contains(" "))
+                        {
+                            // два рбаочих варианта регулярки на две цифры
+                            //if (Regex.IsMatch(tbPassword.Password, @"(?=.[0-9]){2,}"))
+                            if (Regex.IsMatch(tbPassword.Password, @"(?=.*[0-9].*[0-9])"))
+                            {
+                                if (Regex.IsMatch(tbPassword.Password, @"(?=.[A-Z]){1,}"))
+                                {
+                                    if (Regex.IsMatch(tbPassword.Password, @"[a-z]+.*[a-z]+.*[a-z]"))
+                                    {
+                                        if (Regex.IsMatch(tbPassword.Password, @"\W"))
+                                        {
+
+                                            if (Regex.IsMatch(tbPassword.Password, @"(?=.*[^\w\s]).{8,}"))
+                                            {
+
+                                                if (tbPassword.Password.ToString() == tbPassword2.Password.ToString())
+                                                {
+                                                    Users users = new Users()
+                                                    {
+
+                                                        Name = tbName.Text,
+                                                        Surname = tbSurname.Text,
+                                                        Patronymic = tbPatronymic.Text,
+                                                        Login = tbLogin.Text,
+                                                        Password = tbPassword.Password.GetHashCode().ToString(),
+                                                        idCountry = cmb.SelectedIndex + 1,
+                                                        idCity = cmb2.SelectedIndex + 1,
+                                                        //Country = (Country)cmb.SelectedItem,
+                                                        //City = (City)cmb2.SelectedItem,
+
+
+                                                        IdGender = genderList,
+                                                        idRole = 2
+                                                    };
+
+
+                                                    DataBase.tbE.Users.Add(users);
+                                                    DataBase.tbE.SaveChanges();
+                                                    MessageBox.Show("Успешная регистрация");
+                                                    NavigationService.Navigate(new Autorization());
+                                                }
+                                                else
+                                                {
+                                                    MessageBox.Show("Пароли не совпадают", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                                                }
+
+
+
+                                            }
+                                            else
+                                            {
+                                                MessageBox.Show("Пароль должен состоять не менее восьми символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+
+                                            }
+
+
+                                        }
+                                        else
+                                        {
+                                            MessageBox.Show("Пароль должен содержать не менее одного спец.символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+                                        }
+
+
+
+                                    }
+                                    else
+                                    {
+
+                                        MessageBox.Show("В пароле должно находится не менее 3 строчных латинских символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+                                    }
+
+                                }
+                                else
+                                {
+                                    MessageBox.Show("В пароле должно находится не менее одного 1 заглавного символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+                                }
+                            }
+
+                            else
+                            {
+                                MessageBox.Show("В пароле содержатся менее двух цифр", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+                            }
+                        }
+
+                        else
+                        {
+                            MessageBox.Show("Проверьте, чтобы поля не содержали пробелы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                        }
+                    else
+                    {
+                        MessageBox.Show("Такой логин уже существует", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                    }
+
+                else
+                {
+                    MessageBox.Show("Возможно не заполнено одно или несколько полей, а также не выбраны какие-то элементы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                }
+
+            }
+            catch
+            {
+                MessageBox.Show("Непредвиденная ошибка, попробуйте еще раз", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+            }
+
+
+        }
+
+        private void btnBack_Click(object sender, RoutedEventArgs e)
+        {
+            NavigationService.GoBack();
+        }
+        private void checkPassword_Checked(object sender, RoutedEventArgs e)
+        {
+            if (checkPassword.IsChecked == true)
+            {
+                tbPasswordTB.Text = tbPassword.Password;
+                tbPasswordTB.Visibility = Visibility.Visible;
+                tbPassword.Visibility = Visibility.Collapsed;
+            }
+        }
+
+        private void checkPassword_Unchecked(object sender, RoutedEventArgs e)
+        {
+            if (checkPassword.IsChecked == false)
+            {
+                tbPassword.Password = tbPasswordTB.Text;
+                tbPasswordTB.Visibility = Visibility.Collapsed;
+                tbPassword.Visibility = Visibility.Visible;
+            }
+        }
+
+
+
+        private void checkPassword2_Checked_1(object sender, RoutedEventArgs e)
+        {
+            if (checkPassword2.IsChecked == true)
+            {
+                tbPasswordTB1.Text = tbPassword2.Password;
+                tbPasswordTB1.Visibility = Visibility.Visible;
+                tbPassword2.Visibility = Visibility.Collapsed;
+            }
+        }
+
+        private void checkPassword2_Unchecked_1(object sender, RoutedEventArgs e)
+        {
+            if (checkPassword2.IsChecked == false)
+            {
+                tbPassword2.Password = tbPasswordTB1.Text;
+                tbPasswordTB1.Visibility = Visibility.Collapsed;
+                tbPassword2.Visibility = Visibility.Visible;
+            }
+        }
+
+        private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
+        {
+            NavigationService.Navigate(new Autorization());
+        }
+    }
+
+
+
+ХЕШ ПАРОЛЯ РАСХЕШИРОВАНИЕ
+
+  public partial class WindowChangePasswordLogin : Window
+    {
+        Users users;
+        List<Users> user = DataBase.tbE.Users.ToList();
+        public WindowChangePasswordLogin(Users users)
+        {
+            InitializeComponent();
+            this.users = users;
+            tbLogin.Text = users.Login;
+
+        }
+        
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            this.Close();
+        }
+
+        private void Button_Click_1(object sender, RoutedEventArgs e)
+        {
+            try
+            {
+                string a = tbOldPassword.Password.GetHashCode().ToString();
+                Users users1 = DataBase.tbE.Users.FirstOrDefault(x => x.Login == users.Login && x.Password == a);
+                if(users1 == null)
+                {
+                    MessageBox.Show("Старый пароль не соответствует действительности", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                }
+
+
+                /// <summary>
+                /// Проверка на заполненнсть
+                /// </summary>
+                if (!String.IsNullOrEmpty(tbLogin.Text)
+                    && !String.IsNullOrEmpty(tbOldPassword.Password)
+                    && !String.IsNullOrEmpty(tbNewPassword.Password)
+                    && !String.IsNullOrEmpty(tbNewNewPas.Password))
+
+
+                    /// <summary>
+                    /// Проверка на пробелы
+                    /// </summary>
+                    /// 
+                 
+                    if (user.Where(x => x.Login.ToString() == tbLogin.Text).Count() == 0)
+                        if (!tbLogin.Text.Contains(" ")
+                         && !tbOldPassword.Password.Contains(" ")
+                         && !tbNewPassword.Password.Contains(" ")
+                         && !tbNewNewPas.Password.Contains(" ") )
+                        {
+                            // два рбаочих варианта регулярки на две цифры
+                            //if (Regex.IsMatch(tbPassword.Password, @"(?=.[0-9]){2,}"))
+                            if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.*[0-9].*[0-9])") && Regex.IsMatch(tbNewPassword.Password, @"(?=.*[0-9].*[0-9])"))
+                            {
+                                if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.[A-Z]){1,}") && Regex.IsMatch(tbNewPassword.Password, @"(?=.[A-Z]){1,}"))
+                                {
+                                    if (Regex.IsMatch(tbNewNewPas.Password, @"[a-z]+.*[a-z]+.*[a-z]") && Regex.IsMatch(tbNewPassword.Password, @"[a-z]+.*[a-z]+.*[a-z]"))
+                                    {
+                                        if (Regex.IsMatch(tbNewNewPas.Password, @"\W") && Regex.IsMatch(tbNewPassword.Password, @"\W"))
+                                        {
+
+                                            if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.*[^\w\s]).{8,}") && Regex.IsMatch(tbNewPassword.Password, @"(?=.*[^\w\s]).{8,}"))
+                                            {
+
+                                                if (tbNewNewPas.Password.ToString() == tbNewPassword.Password.ToString())
+                                                {
+
+
+
+                                                    users.Login = tbLogin.Text;
+                                                    users.Password = tbNewNewPas.GetHashCode().ToString();
+                                                    DataBase.tbE.SaveChanges();
+                                                    MessageBox.Show("Успешно");
+                                                    this.Close();
+                                                }
+                                                else
+                                                {
+                                                    MessageBox.Show("Пароли не совпадают", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                                                }
+
+
+
+                                            }
+                                            else
+                                            {
+                                                MessageBox.Show("Пароль должен состоять не менее восьми символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+
+                                            }
+
+
+                                        }
+                                        else
+                                        {
+                                            MessageBox.Show("Пароль должен содержать не менее одного спец.символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+                                        }
+
+
+
+                                    }
+                                    else
+                                    {
+
+                                        MessageBox.Show("В пароле должно находится не менее 3 строчных латинских символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+
+                                    }
+
+                                }
+                                else
+                                {
+                                    MessageBox.Show("В пароле должно находится не менее одного 1 заглавного символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+                                }
+                            }
+
+                            else
+                            {
+                                MessageBox.Show("В пароле содержатся менее двух цифр", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+
+                            }
+                        }
+
+                        else
+                        {
+                            MessageBox.Show("Проверьте, чтобы поля не содержали пробелы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                        }
+                    else
+                    {
+                        MessageBox.Show("Такой логин уже существует", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                    }
+
+                else
+                {
+                    MessageBox.Show("Возможно не заполнено одно или несколько полей, а также не выбраны какие-то элементы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+                }
+
+            }
+            catch
+            {
+                MessageBox.Show("Непредвиденная ошибка, попробуйте еще раз", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
+            }
+        }
+    }