// 增加新用户 public bool AddUserInfo(UserInfo userInfo) { userInfo.Password = EncryptPassword(userInfo.Password); List<UserInfo> userList; if (File.Exists("User.config")) { XmlSerializer xmlSerialize = new XmlSerializer(typeof(List<UserInfo>)); using (Stream stream = new FileStream("User.config", FileMode.Open, FileAccess.Read, FileShare.None)) { try { userList = (List<UserInfo>)xmlSerialize.Deserialize(stream); userList.Add(new UserInfo { Name = userInfo.Name, Password = userInfo.Password, Email = userInfo.Email }); } catch { return false; } } using (Stream stream = new FileStream("User.config", FileMode.Create, FileAccess.Write, FileShare.None)) { try { xmlSerialize.Serialize(stream,userList); } catch { return false; } } } else { using (Stream stream = new FileStream("User.config", FileMode.Create, FileAccess.Write, FileShare.None)) { userList = new List<UserInfo> { new UserInfo { Name = userInfo.Name, Password = userInfo.Password, Email = userInfo.Email } }; try { XmlSerializer xmlSerialize = new XmlSerializer(typeof(List<UserInfo>)); xmlSerialize.Serialize(stream, userList); } catch (Exception) { return false; } } } return true; }
// 验证用户记录 public int ValidateUserInfo(UserInfo userInfo) { userInfo.Password = EncryptPassword(userInfo.Password); int i = 0; if (File.Exists("User.config")) { using (Stream stream = new FileStream("User.config", FileMode.Open, FileAccess.Read, FileShare.None)) { XmlSerializer xmlSerialize = new XmlSerializer(typeof(List<UserInfo>)); List<UserInfo> userList= (List<UserInfo>)xmlSerialize.Deserialize(stream); // LINQ 查询 i = (from user in userList where user.Name.ToUpper() == userInfo.Name.ToUpper() && user.Password == userInfo.Password select user).Count(); } } return i; }
/// <summary> /// login /// </summary> private void btnLogin_Click(object sender, EventArgs e) { string userName = txtUserName.Text.Trim(); string password = txtPassword.Text.Trim(); if (userName.IsNullOrWhiteSpace() || password.IsNullOrWhiteSpace()) { this.ShakeForm(); txtUserName.Text = txtPassword.Text = ""; txtUserName.Focus(); SystemSounds.Exclamation.Play(); return; } lblShowConnMsg.Visible = pictureBox1.Visible = true; userInfo = new UserInfo { Name = userName, Password = password }; Func<int> myFun = () => { // validate input user info OperateUserInfo operate = new OperateUserInfo(); Thread.Sleep(2000); return operate.ValidateUserInfo(userInfo); }; myFun.BeginInvoke(CallBackMethod, myFun); }
private void btnSubmit_Click(object sender, EventArgs e) { string userName = txtUserName.Text.Trim(); string password = txtPassword.Text.Trim(); string repeatPassword = txtRepeatPassword.Text.Trim(); string mail = txtMail.Text.Trim(); // 验证用户输入的信息是否合法 if (VerifyUserInfo.Verify(userName, password, mail) == false) { MessageBox.Show("请检查输入的信息!", "信息不合法:"); return; } else { // TODO:判断用户是否已经存在 if (password.Equals(repeatPassword)) { UserInfo user = new UserInfo() { Name = userName, Password = password, Email = mail }; OperateUserInfo operate = new OperateUserInfo(); bool record = operate.AddUserInfo(user); if (record == true) { MessageBox.Show("注册成功!"); } } else MessageBox.Show("密码不一致!", "错误:", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Отправление данных. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendButton_Click(object sender, RoutedEventArgs e) { if (client != null) { if (client.Connected) { string path; try { path = FileNameTextBox.Text; if (FirstLastNameBox.Text != string.Empty && UniversityBox.Text != string.Empty && PhoneBox.Text != string.Empty && path != string.Empty) // условия для запуска обработки и отправки данных { UserInfo user = new UserInfo(FirstLastNameBox.Text, UniversityBox.Text, PhoneBox.Text); // получение и подготовка данных if (File.Exists(path)) { PrepareData(user, path); byte[] info = Encoding.ASCII.GetBytes(packetSerialize.Length.ToString()); bool isConnected = Send(info); // отправка информации о размере (или об отключении) if (isConnected) { if (client.Connected) { isConnected = Send(packetSerialize); if (isConnected) { WriteStatus("\nОжидание ответа..."); Task receiveTask = Task.Factory.StartNew(Receive); FirstLastNameBox.IsEnabled = false; FirstLastNameBox.Clear(); UniversityBox.IsEnabled = false; UniversityBox.Clear(); PhoneBox.IsEnabled = false; PhoneBox.Clear(); FileNameTextBox.Clear(); browseButton.IsEnabled = false; SendButton.IsEnabled = false; MyPic.Visibility = Visibility.Hidden; MyPic.Visibility = Visibility.Hidden; } } else { WriteStatus("\n\nСоединение было разорвано!"); ConnectButton.Content = "Подключиться"; Shutdown(); } } } else { _ = MessageBox.Show("Текущий путь до файла не корректен, либо файл отсуствует!", "Ошибка!"); } } else { _ = MessageBox.Show("Заполните все поля ввода данных!", "Ошибка!"); } } catch (Exception) { _ = MessageBox.Show("Неизвестная ошибка!", "Ошибка!"); } } else // отсутствие подключения { _ = MessageBox.Show("Проблема с соединением. Попробуйте переподключиться.", "Ошибка!"); ConnectButton.Content = "Подключиться"; } } else { _ = MessageBox.Show("Сначала необходимо подключиться!", "Ошибка!"); } }