авторизация регистрация.txt 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. Авторизация в проекте ресторана:
  2. public partial class Autorization : Page
  3. {
  4. public Autorization()
  5. {
  6. InitializeComponent();
  7. DataBase.tbE = new Entities22();
  8. }
  9. private void btnBack_Click(object sender, RoutedEventArgs e)
  10. {
  11. FrameWork.MainFrame.Navigate(new FirstPage());
  12. }
  13. private void btnAuth_Click(object sender, RoutedEventArgs e)
  14. {
  15. string p = Convert.ToString(tbpass.Password.GetHashCode());
  16. Users users = DataBase.tbE.Users.FirstOrDefault(x => x.Login == tblog.Text && x.Password == p);
  17. if (users != null)
  18. {
  19. if (users.idRole == 1)
  20. {
  21. // admin - gerasimov 22!Aaaaa
  22. NavigationService.Navigate(new AdminPage2(users));
  23. }
  24. else
  25. {
  26. MessageBox.Show($"Привет, {users.Name}!", "Успешная авторизация", MessageBoxButton.OK, MessageBoxImage.Information);
  27. NavigationService.Navigate(new ShowMenu(users.id_client));
  28. NavigationService.Navigate(new PersonalAccount(users));
  29. }
  30. }
  31. else
  32. {
  33. MessageBox.Show($"Введенный логин и/или пароль не существуют в системе", "Ошибка авторизации", MessageBoxButton.OK, MessageBoxImage.Error); ;
  34. }
  35. }
  36. private void btngoBack_Click(object sender, RoutedEventArgs e)
  37. {
  38. NavigationService.Navigate(new FirstPage());
  39. }
  40. private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
  41. {
  42. NavigationService.Navigate(new Registration());
  43. }
  44. }
  45. регистрация
  46. 10. Предусмотрите вариант неправильно введенного (или несуществующего) логина или пароля. Также предусмотрите вариант, что у двух пользователей не может быть одного логина (пароли могут совпадать! ) .
  47. Введенный пароль должен удовлетворять следующим требованиям: не менее 1 заглавного латинского символа, не менее 3 строчных латинских символов, не менее 2 цифры и не менее 1 спец. символа. Общая длина пароля не менее 8 символов). Если пользователь ввел некорректный пароль, вывести сообщение, какое именно требование не выполнено. Для проверки удовлетворения пароля требованиям должно быть написано регулярное выражение.
  48. 11. После регистрации нового пользователя должно появиться уведомление об успешной регистрации
  49. public partial class Registration : Page
  50. {
  51. List<Country> countryList = DataBase.tbE.Country.ToList();
  52. List<City> cityList = DataBase.tbE.City.ToList();
  53. List<GenderTable> genderList = DataBase.tbE.GenderTable.ToList();
  54. List<Users> users = DataBase.tbE.Users.ToList();
  55. public Registration()
  56. {
  57. InitializeComponent();
  58. DataBase.tbE = new Entities22();
  59. cmb2.ItemsSource = cityList;
  60. cmb2.SelectedValuePath = "idCity";
  61. cmb2.DisplayMemberPath = "nameCity";
  62. cmb.ItemsSource = countryList;
  63. cmb.SelectedValuePath = "idCountry";
  64. cmb.DisplayMemberPath = "nameCountry";
  65. }
  66. private void btnReg_Click(object sender, RoutedEventArgs e)
  67. {
  68. try
  69. {
  70. if (checkPassword.IsChecked == true)
  71. {
  72. tbPassword.Password = tbPasswordTB.Text;
  73. }
  74. if (checkPassword.IsChecked == false)
  75. {
  76. tbPasswordTB.Text = tbPassword.Password;
  77. }
  78. if (checkPassword2.IsChecked == true)
  79. {
  80. tbPassword2.Password = tbPasswordTB1.Text;
  81. }
  82. if (checkPassword2.IsChecked == false)
  83. {
  84. tbPasswordTB1.Text = tbPassword2.Password;
  85. }
  86. int genderList = 0;
  87. if (rb1.IsChecked == true) { genderList = 1; }
  88. else if (rb2.IsChecked == true) { genderList = 2; }
  89. /// <summary>
  90. /// Проверка на заполненнсть
  91. /// </summary>
  92. if (!String.IsNullOrEmpty(tbName.Text)
  93. && !String.IsNullOrEmpty(tbSurname.Text)
  94. && !String.IsNullOrEmpty(tbPatronymic.Text)
  95. && !String.IsNullOrEmpty(tbLogin.Text)
  96. && !String.IsNullOrEmpty(tbPassword.Password)
  97. && !String.IsNullOrEmpty(tbPassword2.Password)
  98. && (cmb.SelectedItem != null)
  99. && (cmb2.SelectedItem != null)
  100. && (rb1.IsChecked == true || rb2.IsChecked == true))
  101. /// <summary>
  102. /// Проверка на пробелы
  103. /// </summary>
  104. ///
  105. if (users.Where(x => x.Login.ToString() == tbLogin.Text).Count() == 0)
  106. if (!tbName.Text.Contains(" ")
  107. && !tbSurname.Text.Contains(" ")
  108. && !tbPatronymic.Text.Contains(" ")
  109. && !tbLogin.Text.Contains(" ")
  110. && !tbPassword.Password.Contains(" ")
  111. && !tbPassword2.Password.Contains(" "))
  112. {
  113. // два рбаочих варианта регулярки на две цифры
  114. //if (Regex.IsMatch(tbPassword.Password, @"(?=.[0-9]){2,}"))
  115. if (Regex.IsMatch(tbPassword.Password, @"(?=.*[0-9].*[0-9])"))
  116. {
  117. if (Regex.IsMatch(tbPassword.Password, @"(?=.[A-Z]){1,}"))
  118. {
  119. if (Regex.IsMatch(tbPassword.Password, @"[a-z]+.*[a-z]+.*[a-z]"))
  120. {
  121. if (Regex.IsMatch(tbPassword.Password, @"\W"))
  122. {
  123. if (Regex.IsMatch(tbPassword.Password, @"(?=.*[^\w\s]).{8,}"))
  124. {
  125. if (tbPassword.Password.ToString() == tbPassword2.Password.ToString())
  126. {
  127. Users users = new Users()
  128. {
  129. Name = tbName.Text,
  130. Surname = tbSurname.Text,
  131. Patronymic = tbPatronymic.Text,
  132. Login = tbLogin.Text,
  133. Password = tbPassword.Password.GetHashCode().ToString(),
  134. idCountry = cmb.SelectedIndex + 1,
  135. idCity = cmb2.SelectedIndex + 1,
  136. //Country = (Country)cmb.SelectedItem,
  137. //City = (City)cmb2.SelectedItem,
  138. IdGender = genderList,
  139. idRole = 2
  140. };
  141. DataBase.tbE.Users.Add(users);
  142. DataBase.tbE.SaveChanges();
  143. MessageBox.Show("Успешная регистрация");
  144. NavigationService.Navigate(new Autorization());
  145. }
  146. else
  147. {
  148. MessageBox.Show("Пароли не совпадают", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  149. }
  150. }
  151. else
  152. {
  153. MessageBox.Show("Пароль должен состоять не менее восьми символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  154. }
  155. }
  156. else
  157. {
  158. MessageBox.Show("Пароль должен содержать не менее одного спец.символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  159. }
  160. }
  161. else
  162. {
  163. MessageBox.Show("В пароле должно находится не менее 3 строчных латинских символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  164. }
  165. }
  166. else
  167. {
  168. MessageBox.Show("В пароле должно находится не менее одного 1 заглавного символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  169. }
  170. }
  171. else
  172. {
  173. MessageBox.Show("В пароле содержатся менее двух цифр", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  174. }
  175. }
  176. else
  177. {
  178. MessageBox.Show("Проверьте, чтобы поля не содержали пробелы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  179. }
  180. else
  181. {
  182. MessageBox.Show("Такой логин уже существует", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  183. }
  184. else
  185. {
  186. MessageBox.Show("Возможно не заполнено одно или несколько полей, а также не выбраны какие-то элементы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  187. }
  188. }
  189. catch
  190. {
  191. MessageBox.Show("Непредвиденная ошибка, попробуйте еще раз", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  192. }
  193. }
  194. private void btnBack_Click(object sender, RoutedEventArgs e)
  195. {
  196. NavigationService.GoBack();
  197. }
  198. private void checkPassword_Checked(object sender, RoutedEventArgs e)
  199. {
  200. if (checkPassword.IsChecked == true)
  201. {
  202. tbPasswordTB.Text = tbPassword.Password;
  203. tbPasswordTB.Visibility = Visibility.Visible;
  204. tbPassword.Visibility = Visibility.Collapsed;
  205. }
  206. }
  207. private void checkPassword_Unchecked(object sender, RoutedEventArgs e)
  208. {
  209. if (checkPassword.IsChecked == false)
  210. {
  211. tbPassword.Password = tbPasswordTB.Text;
  212. tbPasswordTB.Visibility = Visibility.Collapsed;
  213. tbPassword.Visibility = Visibility.Visible;
  214. }
  215. }
  216. private void checkPassword2_Checked_1(object sender, RoutedEventArgs e)
  217. {
  218. if (checkPassword2.IsChecked == true)
  219. {
  220. tbPasswordTB1.Text = tbPassword2.Password;
  221. tbPasswordTB1.Visibility = Visibility.Visible;
  222. tbPassword2.Visibility = Visibility.Collapsed;
  223. }
  224. }
  225. private void checkPassword2_Unchecked_1(object sender, RoutedEventArgs e)
  226. {
  227. if (checkPassword2.IsChecked == false)
  228. {
  229. tbPassword2.Password = tbPasswordTB1.Text;
  230. tbPasswordTB1.Visibility = Visibility.Collapsed;
  231. tbPassword2.Visibility = Visibility.Visible;
  232. }
  233. }
  234. private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
  235. {
  236. NavigationService.Navigate(new Autorization());
  237. }
  238. }
  239. ХЕШ ПАРОЛЯ РАСХЕШИРОВАНИЕ
  240. public partial class WindowChangePasswordLogin : Window
  241. {
  242. Users users;
  243. List<Users> user = DataBase.tbE.Users.ToList();
  244. public WindowChangePasswordLogin(Users users)
  245. {
  246. InitializeComponent();
  247. this.users = users;
  248. tbLogin.Text = users.Login;
  249. }
  250. private void Button_Click(object sender, RoutedEventArgs e)
  251. {
  252. this.Close();
  253. }
  254. private void Button_Click_1(object sender, RoutedEventArgs e)
  255. {
  256. try
  257. {
  258. string a = tbOldPassword.Password.GetHashCode().ToString();
  259. Users users1 = DataBase.tbE.Users.FirstOrDefault(x => x.Login == users.Login && x.Password == a);
  260. if(users1 == null)
  261. {
  262. MessageBox.Show("Старый пароль не соответствует действительности", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  263. }
  264. /// <summary>
  265. /// Проверка на заполненнсть
  266. /// </summary>
  267. if (!String.IsNullOrEmpty(tbLogin.Text)
  268. && !String.IsNullOrEmpty(tbOldPassword.Password)
  269. && !String.IsNullOrEmpty(tbNewPassword.Password)
  270. && !String.IsNullOrEmpty(tbNewNewPas.Password))
  271. /// <summary>
  272. /// Проверка на пробелы
  273. /// </summary>
  274. ///
  275. if (user.Where(x => x.Login.ToString() == tbLogin.Text).Count() == 0)
  276. if (!tbLogin.Text.Contains(" ")
  277. && !tbOldPassword.Password.Contains(" ")
  278. && !tbNewPassword.Password.Contains(" ")
  279. && !tbNewNewPas.Password.Contains(" ") )
  280. {
  281. // два рбаочих варианта регулярки на две цифры
  282. //if (Regex.IsMatch(tbPassword.Password, @"(?=.[0-9]){2,}"))
  283. if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.*[0-9].*[0-9])") && Regex.IsMatch(tbNewPassword.Password, @"(?=.*[0-9].*[0-9])"))
  284. {
  285. if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.[A-Z]){1,}") && Regex.IsMatch(tbNewPassword.Password, @"(?=.[A-Z]){1,}"))
  286. {
  287. if (Regex.IsMatch(tbNewNewPas.Password, @"[a-z]+.*[a-z]+.*[a-z]") && Regex.IsMatch(tbNewPassword.Password, @"[a-z]+.*[a-z]+.*[a-z]"))
  288. {
  289. if (Regex.IsMatch(tbNewNewPas.Password, @"\W") && Regex.IsMatch(tbNewPassword.Password, @"\W"))
  290. {
  291. if (Regex.IsMatch(tbNewNewPas.Password, @"(?=.*[^\w\s]).{8,}") && Regex.IsMatch(tbNewPassword.Password, @"(?=.*[^\w\s]).{8,}"))
  292. {
  293. if (tbNewNewPas.Password.ToString() == tbNewPassword.Password.ToString())
  294. {
  295. users.Login = tbLogin.Text;
  296. users.Password = tbNewNewPas.GetHashCode().ToString();
  297. DataBase.tbE.SaveChanges();
  298. MessageBox.Show("Успешно");
  299. this.Close();
  300. }
  301. else
  302. {
  303. MessageBox.Show("Пароли не совпадают", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  304. }
  305. }
  306. else
  307. {
  308. MessageBox.Show("Пароль должен состоять не менее восьми символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  309. }
  310. }
  311. else
  312. {
  313. MessageBox.Show("Пароль должен содержать не менее одного спец.символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  314. }
  315. }
  316. else
  317. {
  318. MessageBox.Show("В пароле должно находится не менее 3 строчных латинских символов", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  319. }
  320. }
  321. else
  322. {
  323. MessageBox.Show("В пароле должно находится не менее одного 1 заглавного символа", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  324. }
  325. }
  326. else
  327. {
  328. MessageBox.Show("В пароле содержатся менее двух цифр", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  329. }
  330. }
  331. else
  332. {
  333. MessageBox.Show("Проверьте, чтобы поля не содержали пробелы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  334. }
  335. else
  336. {
  337. MessageBox.Show("Такой логин уже существует", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  338. }
  339. else
  340. {
  341. MessageBox.Show("Возможно не заполнено одно или несколько полей, а также не выбраны какие-то элементы", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  342. }
  343. }
  344. catch
  345. {
  346. MessageBox.Show("Непредвиденная ошибка, попробуйте еще раз", "Возникла какая-то ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
  347. }
  348. }
  349. }