private void LoginButton_Click(object sender, RoutedEventArgs ev) { DatabaseDataContext DBC = new DatabaseDataContext(); String Username = LoginName.Text; MD5 MD5Handler = MD5.Create(); MD5Handler.ComputeHash(Encoding.Default.GetBytes(LoginPassword.Password)); byte[] Password = MD5Handler.Hash; var query = (from c in DBC.GetTable <User>() where c.Login == Username select c); if (query.Count() == 0) { MessageBox.Show( "Пользователя с таким именем не существует", "Вход", MessageBoxButton.OK, MessageBoxImage.Error); return; } User DBUser = query.Single(); if (!StructuralComparisons.StructuralEqualityComparer.Equals(DBUser.Password, Password)) { MessageBox.Show( "Введенный пароль неверен! \r\n" + "Проверьте правильность ввода пароля и повторите попытку", "Вход", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (IsStoreLoginData.IsChecked ?? true) { StoreLoginData(); } Instance.Hide(); CurrentView = new UserWindow(DBUser); CurrentView.Show(); }
private void RegisterButton_Click(object sender, RoutedEventArgs e) { DatabaseDataContext DBC = new DatabaseDataContext(); MD5 MD5Handler = MD5.Create(); String Login = RegisterName.Text; byte[] Password; if (RegisterPassword.Password.Length < PreferredPasswordLength) { MessageBox.Show( "Пароль сликом короткий! Предпочтительная длинна: " + PreferredPasswordLength + " символов.", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (!RegisterPassword.Password.Equals(RegisterPasswordRetype.Password)) { MessageBox.Show( "Пароли не совпадают!", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Error); return; } MD5Handler.ComputeHash(Encoding.Default.GetBytes(RegisterPassword.Password)); Password = MD5Handler.Hash; IQueryable <User> query = (from c in DBC.GetTable <User>() where c.Login == Login select c); if (query.Count() != 0) { MessageBox.Show( "Пользователь с таким именем уже существует", "Регистрация", MessageBoxButton.OK, MessageBoxImage.Error); return; } Role UserRole = (from c in DBC.GetTable <Role>() where c.Flags == RoleFlags.User select c).SingleOrDefault(); User NewUser = new User(); NewUser.Login = Login; NewUser.Password = Password; NewUser.Role = UserRole; DBC.User.InsertOnSubmit(NewUser); Meta NewUserMeta = new Meta(); NewUserMeta.Address = ""; NewUserMeta.Name = ""; NewUser.Meta = NewUserMeta; DBC.Meta.InsertOnSubmit(NewUserMeta); DBC.SubmitChanges(); ShowLoginForm(); }