예제 #1
0
 // 增加新用户
 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;
 }
예제 #2
0
        // 验证用户记录
        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;
        }
예제 #3
0
파일: Main.cs 프로젝트: KanLei/UdpAndTcp
        /// <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);
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        /// <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("Сначала необходимо подключиться!", "Ошибка!");
            }
        }