public static void SetAnswer(String Question, String Answer) { if (File.Exists(AnswerPath)) { using (StreamWriter sr = new StreamWriter(File.Open(AnswerPath, FileMode.OpenOrCreate))) { String KeyQ = Encryption.GetKeyEncryption(); String KeyA = Encryption.GetKeyEncryption(); sr.WriteLine($"{Encryption.EncryptRSA(Question, KeyQ)}_{KeyQ}"); sr.WriteLine($"{Encryption.EncryptRSA(Answer, KeyA)}_{KeyA}"); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Answer.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Answer.conf не найден"); return; } }
public static void SetEntrance(bool flag) { if (File.Exists(FirstEntancePath)) { using (StreamWriter sr = new StreamWriter(File.Open(FirstEntancePath, FileMode.OpenOrCreate))) { if (flag) { sr.WriteLine("true"); } else { sr.WriteLine("false"); } } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Entrance.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Entrance.conf не найден"); return; } }
public static void GetEntrance() { if (File.Exists(FirstEntancePath)) { using (StreamReader sr = new StreamReader(File.Open(FirstEntancePath, FileMode.Open))) { String Temp = sr.ReadLine(); if (Temp == "true") { SystemArgs.FirstEntrance = true; } else { SystemArgs.FirstEntrance = false; } } FirstEntrance(); } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Entrance.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Entrance.conf не найден"); return; } }
public static String[] GetAnswer(String Question, String Answer) { if (File.Exists(AnswerPath)) { using (StreamReader sw = new StreamReader(File.Open(AnswerPath, FileMode.Open))) { String[] SplitRSA = sw.ReadLine().Split('_'); String DecryptQuestionRSA = $"{Encryption.DecryptRSA(SplitRSA[0], SplitRSA[1])}"; SplitRSA = sw.ReadLine().Split('_'); String DecryptAnswerRSA = $"{Encryption.DecryptRSA(SplitRSA[0], SplitRSA[1])}"; return(new String[2] { DecryptQuestionRSA, DecryptAnswerRSA }); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Answer.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Answer.conf не найден"); return(null); } }
private void Reg_B_Click(object sender, EventArgs e) { Restore_F Dialog = new Restore_F(); using (StreamReader sr = new StreamReader(File.Open(SystemPath.AnswerPath, FileMode.Open))) { String[] Temp = sr.ReadLine().Split('_'); Dialog.Question_TB.Text = Encryption.DecryptRSA(Temp[0], Temp[1]); } if (Dialog.ShowDialog() == DialogResult.OK) { CreatePass_F DialogP = new CreatePass_F(); if (DialogP.ShowDialog() == DialogResult.OK) { SystemPath.SetPasswordApp(DialogP.Password_TB.Text.Trim()); } else { MessageOneButton_F DialogErr = new MessageOneButton_F(); DialogErr.Message_L.Text = "Восстановление пароля отменено"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Восстановление пароля отменено"); } } }
public static void CheckFiles() { try { SystemArgs.PrintLog($"Запуск приложения"); if (!File.Exists(SystemPath.DataRegPath)) { throw new Exception(); } if (!File.Exists(SystemPath.DataUSersPath)) { throw new Exception(); } if (!File.Exists(SystemPath.DataLogPath)) { throw new Exception(); } SystemPath.GetDataRegPath(); SystemPath.GetDataLogPath(); SystemPath.GetDataUsersPath(); SystemPath.GetEntrance(); } catch (UnauthorizedAccessException) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Недостаточно прав для доступа к системным файлам"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Недостаточно прав доступа для корректного запуска программного обеспечения"); Application.Exit(); } catch (Exception) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл конфигурации не найден. Выход из приложения"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл конфигурации не найден"); Application.Exit(); } }
public static String DecryptRSA(String OutputPassword, String Password) { if (String.IsNullOrEmpty(OutputPassword)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Входная строка имела пустое значение"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Получено пустое значение пароля"); return(null); } ; byte[] VectorB = Encoding.ASCII.GetBytes(Vector); byte[] SaltB = Encoding.ASCII.GetBytes(Salt); byte[] OutputPasswordB = Convert.FromBase64String(OutputPassword); PasswordDeriveBytes DerivePassword = new PasswordDeriveBytes(Password, SaltB, "SHA1", PasswordIter); byte[] KeyBytes = DerivePassword.GetBytes(KeySize / 8); RijndaelManaged SymmKey = new RijndaelManaged(); SymmKey.Mode = CipherMode.CBC; byte[] InitialTextBytes = new byte[OutputPasswordB.Length]; Int32 ByteCount = 0; using (ICryptoTransform Decryptor = SymmKey.CreateDecryptor(KeyBytes, VectorB)) { using (MemoryStream MemoryStream = new MemoryStream(OutputPasswordB)) { using (CryptoStream CryptoStream = new CryptoStream(MemoryStream, Decryptor, CryptoStreamMode.Read)) { ByteCount = CryptoStream.Read(InitialTextBytes, 0, InitialTextBytes.Length); MemoryStream.Close(); CryptoStream.Close(); } } } SymmKey.Clear(); SystemArgs.PrintLog($"Дешифрование пароля завершено успешно"); return(Encoding.UTF8.GetString(InitialTextBytes, 0, ByteCount)); }
public static String EncryptRSA(String InputPassword, String Password) { if (String.IsNullOrEmpty(InputPassword)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Входная строка имела пустое значение"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Получено пустое значение пароля"); return(null); } byte[] VectorB = Encoding.ASCII.GetBytes(Vector); byte[] SaltB = Encoding.ASCII.GetBytes(Salt); byte[] InputPasswordB = Encoding.UTF8.GetBytes(InputPassword); PasswordDeriveBytes DerivePassword = new PasswordDeriveBytes(Password, SaltB, "SHA1", PasswordIter); byte[] KeyBytes = DerivePassword.GetBytes(KeySize / 8); RijndaelManaged SymmKey = new RijndaelManaged(); SymmKey.Mode = CipherMode.CBC; byte[] EncryptrTextBytes = null; using (ICryptoTransform Encryptor = SymmKey.CreateEncryptor(KeyBytes, VectorB)) { using (MemoryStream MemoryStream = new MemoryStream()) { using (CryptoStream CryptoStream = new CryptoStream(MemoryStream, Encryptor, CryptoStreamMode.Write)) { CryptoStream.Write(InputPasswordB, 0, InputPasswordB.Length); CryptoStream.FlushFinalBlock(); EncryptrTextBytes = MemoryStream.ToArray(); MemoryStream.Close(); CryptoStream.Close(); } } } SymmKey.Clear(); SystemArgs.PrintLog($"Шифрование пароля завершено успешно"); return(Convert.ToBase64String(EncryptrTextBytes)); }
private void CreatePass_F_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { if (String.IsNullOrEmpty(Password_TB.Text)) { MessageOneButton_F DialogErr = new MessageOneButton_F(); DialogErr.Message_L.Text = "Необходимо указать значение пароля"; if (DialogErr.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Получено пустое значние пароля"); e.Cancel = true; return; } } if (Password_TB.Text.Trim().Length < 6) { MessageOneButton_F DialogErr = new MessageOneButton_F(); DialogErr.Message_L.Text = "Длина пароля должна быть не менее 6 символов"; if (DialogErr.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Длина пароля менеее 6 символов"); e.Cancel = true; return; } } MessegeTwoButtons_F Dialog = new MessegeTwoButtons_F(); Dialog.Message_L.Text = "Вы действителньо хотите установить этот пароль?"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Пароль успешно сохранен"); } else { SystemArgs.PrintLog($"Процедура выхода из программы отменена"); e.Cancel = true; } } }
public static void DeleteUser(User User) { SystemArgs.PrintLog($"Процедура удаления пользователя => Старт "); String[] PathFiles; if (Directory.Exists($@"{SystemPath.DataReg}") && Directory.Exists($@"{SystemPath.DataUSers}")) { PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}"); for (Int32 i = 0; i < PathFiles.Length; i++) { String DirectoryName = new FileInfo(PathFiles[i]).Name; if (DirectoryName == User.Name) { Directory.Delete($@"{PathFiles[i]}", true); } } PathFiles = Directory.GetDirectories($@"{SystemPath.DataUSers}"); for (Int32 i = 0; i < PathFiles.Length; i++) { String DirectoryName = new FileInfo(PathFiles[i]).Name; if (DirectoryName == User.Name) { Directory.Delete($@"{PathFiles[i]}", true); } } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена"); } }
private void Restore_F_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { if (String.IsNullOrEmpty(Answer_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = $@"Необходимо ввести секретное слово"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Неправильное секретное слово"); e.Cancel = true; return; } String Temp = String.Empty; using (StreamReader sr = new StreamReader(File.Open(SystemPath.PassAppPath, FileMode.Open))) { Temp = sr.ReadLine(); } if (Hash.GetSHA256(Answer_TB.Text) != Temp) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = $@"Неправильный секретное слово"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Неправильное секретное слово"); e.Cancel = true; } } }
private void PositionForm_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { String error = String.Empty; try { if (Name_TB.Text.Trim() == String.Empty) { Name_TB.Focus(); error = "Необходимо ввести наименование позиции"; throw new Exception(error); } //if(Name_TB.Text.Trim().ToLower() == Name.ToLower()) //{ // Name_TB.Focus(); // error = "Исходное и конечное имена пользователя одинаковы"; // throw new Exception(error); //} if (Pass_TB.Text.Trim() == String.Empty) { Pass_TB.Focus(); error = "Необходимо ввеситм пароль позиции"; throw new Exception(error); } } catch { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = error; if (Dialog.ShowDialog() == DialogResult.OK) { } e.Cancel = true; } } }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { if (String.IsNullOrEmpty(Pass_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = $@"Необходимо ввести пароль"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Получен неправильный пароль"); e.Cancel = true; return; } using (StreamReader sr = new StreamReader(File.Open(SystemPath.PassAppPath, FileMode.Open))) { String TempPass = sr.ReadLine(); String CurrPass = Hash.GetSHA256(Pass_TB.Text.Trim()); if (TempPass != CurrPass) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = $@"Неправильный пароль"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Получен пароль"); e.Cancel = true; } } } }
private void button3_Click(object sender, EventArgs e) { String Search = Search_TB.Text.Trim(); if (Search == String.Empty) { ResetSearch(); return; } SystemArgs.Result.Clear(); foreach (User Temp in SystemArgs.Users) { if (Temp.GetSearchString().IndexOf(Search) != -1) { SystemArgs.Result.Add(Temp); } } if (SystemArgs.Result.Count != 0) { Show(SystemArgs.Result); SystemArgs.PrintLog($"Удачное завершение поиска поиска. Результатов {SystemArgs.Result.Count}"); } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Поиск не дал результатов"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Поиск не дал результатов"); return; } } }
public static void GetUsers() { SystemArgs.PrintLog($"Процедура получения списка пользователей => Старт"); String[] PathFiles; if (Directory.Exists($@"{SystemPath.DataReg}")) { PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}"); for (Int32 i = 0; i < PathFiles.Length; i++) { String DirectoryName = new FileInfo(PathFiles[i]).Name; if (File.Exists($@"{PathFiles[i]}\{DirectoryName}.hba")) { using (StreamReader sr = new StreamReader(File.Open($@"{PathFiles[i]}\{DirectoryName}.hba", FileMode.Open))) { String UserName = sr.ReadLine(); String Password = sr.ReadLine(); SystemArgs.Users.Add(new User(UserName, Password)); } } } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена"); Application.Exit(); } }
public static void ByHash(bool OrderBy) { List <User> TempList = SystemArgs.Users; //Копируем элементы для сохранения try { if (OrderBy) { var SortedData = from p in TempList orderby p.Password ascending select p; SystemArgs.Users = SortedData.ToList(); } else { var SortedData = from p in TempList orderby p.Password descending select p; SystemArgs.Users = SortedData.ToList(); } } catch (Exception) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Ошибка при сортировке. Данные будут восстановлены"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.Users = TempList; //Возращаем объекты в исходное состояние return; } }
public static void GetDataUsersPath() { if (File.Exists(DataUSersPath)) { using (StreamReader sr = new StreamReader(File.Open(DataUSersPath, FileMode.Open))) { DataUSers = sr.ReadLine(); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл DateUsers.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл DataReg.conf не найден"); return; } }
public static void SetDataRegPath(String Path) { if (File.Exists(DataRegPath)) { using (StreamWriter sw = new StreamWriter(File.Open(DataRegPath, FileMode.OpenOrCreate))) { sw.WriteLine(Path); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл DateReg.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл DataReg.conf не найден"); return; } }
public static String GetPasswordApp() { if (File.Exists(PassAppPath)) { using (StreamReader sr = new StreamReader(File.Open(PassAppPath, FileMode.Open))) { return(sr.ReadLine()); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Password.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Password.conf не найден"); return(null); } }
public static void SetPasswordApp(String Password) { if (File.Exists(PassAppPath)) { using (StreamWriter sr = new StreamWriter(File.Open(PassAppPath, FileMode.OpenOrCreate))) { sr.WriteLine($"{Hash.GetSHA256(Password)}"); } } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Файл Password.conf не обнаружен"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Файл Password.conf не найден"); return; } }
private void Question_F_FormClosing(object sender, FormClosingEventArgs e) { if (DialogResult == DialogResult.OK) { if (String.IsNullOrEmpty(RegUser_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Необходимо указать путь к директории регистрации"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Получено пустое значние директории Reg"); e.Cancel = true; return; } } if (String.IsNullOrEmpty(DataUser_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Необходимо указать путь к директории данных"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Получено пустое значние директории Files"); e.Cancel = true; return; } } if (!Directory.Exists(RegUser_TB.Text.Trim())) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Указать путь к директории регистрации не существует"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Указать путь к директории регистрации не существует"); e.Cancel = true; return; } } if (!Directory.Exists(DataUser_TB.Text.Trim())) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Указать путь к директории данных не существует"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Указать путь к директории данных не существует"); e.Cancel = true; return; } } if (String.IsNullOrEmpty(Question_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Необходимо указать вопрос для восстановления"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Получено пустое значние вопроса"); e.Cancel = true; return; } } if (String.IsNullOrEmpty(Answer_TB.Text)) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Необходимо указать ответ на вопрос"; if (Dialog.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Получено пустое значение ответа на вопрос"); e.Cancel = true; return; } } MessegeTwoButtons_F DialogQE = new MessegeTwoButtons_F(); DialogQE.Message_L.Text = "Сохранить указанные данные?"; if (DialogQE.ShowDialog() == DialogResult.OK) { SystemArgs.PrintLog($"Данные успешно сохранен"); } else { SystemArgs.PrintLog($"Процедура сохранения данных отменена"); e.Cancel = true; } } }
public static void ChangeUsers(User NewUser, User OldUser) { SystemArgs.PrintLog($"Процедура модификации пользователя => Старт"); String[] PathFiles; if (Directory.Exists($@"{SystemPath.DataReg}")) { PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}"); Int32 Index = -1; for (Int32 i = 0; i < PathFiles.Length; i++) { if ($@"{SystemPath.DataReg}\{OldUser.Name}" == PathFiles[i]) { Index = i; break; } } if (Index != -1) { Directory.Delete($@"{PathFiles[Index]}", true); Directory.CreateDirectory($@"{SystemPath.DataReg}\{NewUser.Name}"); using (StreamWriter sw = new StreamWriter(File.Create($@"{SystemPath.DataReg}\{NewUser.Name}\{NewUser.Name}.hba"))) { sw.WriteLine(NewUser.Name); sw.WriteLine(NewUser.Password); } SystemArgs.PrintLog($"Директория пользователя {NewUser.Name} создана"); } PathFiles = Directory.GetDirectories($@"{SystemPath.DataUSers}"); bool Flag = false; for (Int32 i = 0; i < PathFiles.Length; i++) { if ($@"{SystemPath.DataUSers}\{OldUser.Name}" == PathFiles[i]) { Flag = true; break; } } if (Flag) { Directory.CreateDirectory($@"Temp"); foreach (string newPath in Directory.GetFiles($@"{SystemPath.DataUSers}\{OldUser.Name}", "*.*", SearchOption.AllDirectories)) { string[] fName = newPath.Split('\\'); File.Copy(newPath, $@"Temp\{fName[fName.Length - 1]}", true); } Directory.Delete($@"{SystemPath.DataUSers}\{OldUser.Name}", true); Directory.CreateDirectory($@"{SystemPath.DataUSers}\{NewUser.Name}"); foreach (string newPath in Directory.GetFiles($@"Temp", "*.*", SearchOption.AllDirectories)) { string[] fName = newPath.Split('\\'); File.Copy(newPath, $@"{SystemPath.DataUSers}\{NewUser.Name}\{fName[1]}", true); } Directory.Delete($@"Temp", true); } else { Directory.CreateDirectory($@"{SystemPath.DataUSers}\{NewUser.Name}"); } MessageOneButton_F Dialog2 = new MessageOneButton_F(); Dialog2.Message_L.Text = "Пользователь успешно зарегистрирован"; if (Dialog2.ShowDialog() == DialogResult.OK) { } SystemArgs.Users.Remove(OldUser); SystemArgs.Users.Add(NewUser); SystemArgs.PrintLog($"Пользователь успешно зарегистрирован"); } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена"); } }
public static void AddUser(User User) { SystemArgs.PrintLog($"Процедура добавления пользователя => Старт "); String[] PathFiles; PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}"); for (Int32 i = 0; i < PathFiles.Length; i++) { if ($@"{SystemPath.DataReg}\{User.Name}" == PathFiles[i]) { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Пользователь с таким именем уже существует"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Пользователь существует"); return; } } if (Directory.Exists($@"{SystemPath.DataReg}")) { Directory.CreateDirectory($@"{SystemPath.DataReg}\{User.Name}"); using (StreamWriter sw = new StreamWriter(File.Create($@"{SystemPath.DataReg}\{User.Name}\{User.Name}.hba"))) { sw.WriteLine(User.Name); sw.WriteLine(User.Password); } SystemArgs.PrintLog($"Директория пользователя {User.Name} создана"); Directory.CreateDirectory($@"{SystemPath.DataUSers}\{User.Name}"); MessageOneButton_F Dialog2 = new MessageOneButton_F(); Dialog2.Message_L.Text = "Пользователь успешно зарегистрирован"; if (Dialog2.ShowDialog() == DialogResult.OK) { } SystemArgs.Users.Add(User); SystemArgs.PrintLog($"Пользователь успешно зарегистрирован"); } else { MessageOneButton_F Dialog = new MessageOneButton_F(); Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена"; if (Dialog.ShowDialog() == DialogResult.OK) { } SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена"); } }