示例#1
0
        public static void ShowForm(XML_USER user)
        {
            ResultForm resultForm = new ResultForm();

            resultForm.user = user;
            resultForm.FillInformation();
            resultForm.FillListView();
            resultForm.MakeGraphic();
            resultForm.ShowDialog();
        }
示例#2
0
        //Посмотреть свои результаты
        private void ViewResultsTSMI_Click(object sender, EventArgs e)
        {
            string s;

            if (FindResultBox.Input(out s))
            {
                XML_USER xmlUser = new XML_USER();
                xmlUser.DeSerialize(s);
                ResultForm.ShowForm(xmlUser);
                this.Hide();
            }
        }
示例#3
0
        /// <summary>
        /// Десериализует объект типа XML с именем
        /// </summary>
        /// <param name="NameFile">Имя файла</param>
        public void DeSerialize(string NameFile)
        {
            string file = "UserTest\\" + NameFile + ".xml";

            using (var f = new FileStream(file, FileMode.Open))
            {
                #region Получение соли и вектора инициализации из файла
                // Выделяем память под ключ и IV
                byte[] salt = new byte[salt_length];
                byte[] iv   = new byte[key_length]; // Длина IV равна размеру блока и равна длине ключа

                f.Read(salt, 0, salt.Length);
                f.Read(iv, 0, iv.Length);
                #endregion

                #region Получение ключа
                // Получим ключ из пароля
                byte[] key;     // Байты ключа
                var    keygenerator = new Rfc2898DeriveBytes(password, salt);
                key = keygenerator.GetBytes(key_length);
                #endregion

                #region Подготовка алгоритма
                // Создаём объект, который будет заниматься дешифровкой.
                Aes aes = Aes.Create();

                aes.Key = key;          // Задаём ключ
                aes.IV  = iv;           // Задаём вектор инициализации
                #endregion

                #region Дешифровка
                // Создаём дешифровшик
                var decryptor = aes.CreateDecryptor();

                // Переменная для дешифрованных данных
                byte[] data;

                // Поместим дешифрованный текст в переменную text
                string text;

                // Создаём шифрованный поток поверх нашего файла и читаем данные
                // Заранее размер неизместен, поэтму сперва копируем в MemoryStream
                // Копирование выполняется побайтово, но лучше блоками
                using (var ms = new MemoryStream())
                    using (var cs = new CryptoStream(f, decryptor, CryptoStreamMode.Read))
                    {
                        while (true)
                        {
                            var b = cs.ReadByte();
                            if (b == -1)
                            {
                                break;          // Если достигнут конец потока
                            }
                            ms.WriteByte((byte)b);
                        }

                        // Если мы сохраняли текст в UTF-8, то декодируем
                        // data = ms.ToArray();
                        // text = Encoding.UTF8.GetString(data);

                        // Если мы использовали сериализацию, то десериализуем
                        ms.Seek(0, SeekOrigin.Begin);               // Перематываем поток на начало
                        XML_USER User = (XML_USER)formatter.Deserialize(ms);
                        MaxPoint  = User.MaxPoint;
                        ID        = User.ID;
                        FIO       = User.FIO;
                        EI        = User.EI;
                        Science   = User.Science;
                        Theme     = User.Theme;
                        Point     = User.Point;
                        Mark      = User.Mark;
                        Time      = User.Time;
                        Questions = User.Questions;
                    }
                #endregion
            }

            /*
             * using (FileStream fs = new FileStream("UserTest\\" + NameFile + ".xml", FileMode.OpenOrCreate)){
             *  XML_USER User = (XML_USER)formatter.Deserialize(fs);
             *  MaxPoint = User.MaxPoint;
             *  ID = User.ID;
             *  FIO = User.FIO;
             *  EI = User.EI;
             *  Science = User.Science;
             *  Theme = User.Theme;
             *  Point = User.Point;
             *  Mark = User.Mark;
             *  Time = User.Time;
             *  Questions = User.Questions;
             * }*/
        }