コード例 #1
0
        private void addButton_Click(object sender, RoutedEventArgs e)
        {
            if (loginTextBox.Text != "" & passwordTextBox.Text != "")           // Если поле логина и пароля не пустые
            {
                if (passwordTextBox.Text.Length > 4 )                           // Если пароль более 4 символов
                {
                    User user = new User();                                     // Создаем пользователя
                    AdditiveData aData = new AdditiveData();                    // Создаем доп. данные

                    user.Login = loginTextBox.Text.ToString();                  // Устанавливаем Login

                    aData.ID = user.ID;                                         // Устанавливаем ID для доп. данных
                    aData.Salt = RandomString(10);                              // Получаем Соль
                    user.AdditiveData = aData;
                    MD5 md5 = new MD5CryptoServiceProvider();
                    //compute hash from the bytes of text
                    byte[] checkSum = ASCIIEncoding.ASCII.GetBytes(passwordTextBox.Text + user.AdditiveData.Salt);
                    md5.ComputeHash(checkSum);
                    byte[] result = md5.Hash;
                    string password = BitConverter.ToString(result).Replace("-", String.Empty);
                    user.Password = password.ToString();
                    DbInteraсtion.addUser(user);                         // Добавляем пользователя в БД
                    MessageWindow.Show(string.Format("Пользователь {0} успешно добавлен в базу данных", // Уведомляем
                    user.Login));
                    clearTextBoxes();                                           // Очищаем текстовые поля

                }
                else
                {
                    MessageWindow.Show("Длина пароля должна быть более чем 4 символа");
                }
            }
        }
コード例 #2
0
        public void userTest()
        {
            User user = new User { ID = 1, Login = "******", Password = "******" };
            AdditiveData adata = new AdditiveData { ID = user.ID, Salt = "123456789" };
            User gotUser = DbInteraсtion.getUser("demon");
            if(gotUser==null)
                DbInteraсtion.addUser(user);
            else
            {
                DbInteraсtion.deleteUser(user);
                DbInteraсtion.addUser(user);
            }
            gotUser = DbInteraсtion.getUser("demon");
            Assert.IsNotNull(gotUser);

            DbInteraсtion.deleteUser(user);
            gotUser = DbInteraсtion.getUser("demon");
            Assert.IsNull(gotUser);
        }
コード例 #3
0
 private void updateButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (passwordTextBox.Text != "" & passwordTextBox.Text.Length>4)         // Если введенный пароль не пустой и длиннее 4 символов
         {
             User _user = new User();                                            // Создаем экземпляр класса пользователя
             AdditiveData _aData = null;
             _user.Login = loginTextBox.Text;                                    // Устанавливаем имя
             _user.ID = Convert.ToDecimal(idTextBox.Text);                       // Устанавливаем ID
             _aData = DbInteraсtion.getUser(_user.Login).AdditiveData;           // Получаем доп. данные
             _aData.Salt = RandomString(10);                                     // Получаем Новую Соль
             _user.AdditiveData = _aData;
             foreach (byte b
                 in new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(
                 passwordTextBox.Text.ToString() + _aData.Salt)))         // Хэшируем
             {
                 _user.Password += b.ToString("X2");                             // Устанавливаем пароль
             }
             MessageWindow.Show(string.Format("Вы действительно хотите изменить данные пользователя {0}", // Проверка на необходимость изменений
             _user.Login) +
             "Нажмите ОК, для подтверждения или крестик в правом верхнем углу экрана для отмены");
             if (MessageWindow.Result == MessageWindow.MessageResult.Ok)                           // Если ОК
             {
                 DbInteraсtion.updateUser(_user);                                                    // Обновляем
                 MessageWindow.Show(string.Format("Пользователь {0} успешно изменен",              // Уведомляем пользователя
                 _user.Login));
             }
             Close();
         }
     }
     catch (FormatException)
     {
         MessageWindow.Show("Неправильный формат ввода");                                            // Отлавливаем неправильный формат ввода
     }
 }
コード例 #4
0
ファイル: DBInteraсtion.cs プロジェクト: reflash-blog/WPFApp
 public static void addUser(User user)
 {
     using (var _db = new UserMTypeDBContext())
     {
         _db.User.Add(user);          // Добавляем пользователя
         _db.SaveChanges();           // Сохраняем изменения
     }
 }
コード例 #5
0
ファイル: DBInteraсtion.cs プロジェクト: reflash-blog/WPFApp
        public static void deleteUser(User user)
        {

            using (var _db = new UserMTypeDBContext())
            {
                _db.User.Attach(user);             // Приаттачиваем пользователя для избежания ошибки при отсутствии такого пользователя
                _db.User.Remove(user);             // Удаляем пользователя
                _db.SaveChanges();                 // Сохраняем изменения
            }

        }
コード例 #6
0
ファイル: DBInteraсtion.cs プロジェクト: reflash-blog/WPFApp
        public static void updateUser(User updatedUser)
        {
            using (var _db = new UserMTypeDBContext())
            {
                var _originalUser = _db.User.Find(updatedUser.ID);          // Выбираем оригинальную запись по ID

                if (_originalUser != null)                                         // Если таковая существует
                {
                    _db.Entry(_originalUser).CurrentValues.SetValues(updatedUser);  // Обновляем запись
                    _db.SaveChanges();                                              // Сохраняем изменения
                }
            }

        }