public static bool Authentication(string nameAccessFile) { try { using (StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + nameAccessFile)) { // Первый раз считываем загаловок string line = sr.ReadLine(); string[] row = new string[3]; while ((line = sr.ReadLine()) != null) { row = line.Split(','); string user = row[0].ToUpper(); DateTime date = DateTime.Parse(row[1]); if (Environment.UserName.ToUpper() == user && DateTime.Now < date) { return(true); } } return(false); } } catch (Exception ex) { MessageBoxShow.Error(ex.Message, "", "Ошибка аутентификации"); return(false); } }
/// <summary> /// Событие click по кнопке btn_upload /// </summary> /// <param name="sender">Объект кнопки</param> /// <param name="e">Информация о событии</param> private async void btn_upload_Click(object sender, RoutedEventArgs e) { try { btn_upload.IsEnabled = false; txtbl_btn_upload.Text = "Отправляю..."; img_btn_upload.Visibility = Visibility.Visible; string publicLink = await _sharingFiles.Upload(_server, _login, _password); if (publicLink == null) { throw new Exception("Не получилось создать ссылку"); } string date = (DateTime.Now + TimeSpan.FromDays(_thunderbirdDays)).ToString("dd.MM.yyyy"); var listfiles = _sharingFiles.GetUploadFiles .Where(file => file.TypePath == TypePath.File) .Select(file => file.Path.Replace(_args[0] + "\\", "")) .Aggregate((cur, next) => cur + "<br> " + next);; string body = (_thunderbirdIsDays) ? $"{publicLink}<br>{String.Format(_thunderbirdDaysText, date)}<br><br>{String.Format(_thunderbirdFilesText1, _thunderbirdFilesText2)}<br>{String.Format(_thunderbirdFilesText3, listfiles)}" : publicLink; System.Diagnostics.Process.Start(_thunderbirdExe, String.Format(_thunderbirdArgs, body)); } catch (Exception ex) { MessageBoxShow.Error($"\n{ex.Message}"); } this.Close(); }
/// <summary> /// Событие загрузки окна /// </summary> /// <param name="sender">Объект окна</param> /// <param name="e">Информация о событии</param> private async void outputFilesWindows_Loaded(object sender, RoutedEventArgs e) { _sharingFiles = new SharingFiles(dg_files); try { dg_files.DataContext = await _sharingFiles.GetFilesAsync(_args); dg_files.Visibility = Visibility.Visible; btn_upload.IsEnabled = true; img_btn_upload.Visibility = Visibility.Collapsed; txtbl_btn_upload.Text = "Отправить по почте"; } catch (Exception ex) { MessageBoxShow.Error($"\n{ex.Message}"); App.Current.Shutdown(1); } }
/// <summary> /// Конструктор класса OutputFilesWindows /// </summary> /// <param name="args">Аргументы командной строки (путь до файла/папки)</param> public OutputFilesWindows(string[] args) { // Инициализация компонентов InitializeComponent(); // Инициализация локальных переменных // Аргументы командной строки (путь до файлов/папок) _args = args; // Значения хранятся в файле // app.config (до компиляции) -> MailToOwnCloud.exe.config (после компиляции) _server = ConfigurationManager.AppSettings["server"]; _login = ConfigurationManager.AppSettings["login"]; try { _password = EncryptionHelper.Decrypt(ConfigurationManager.AppSettings["password"]); } catch (System.Security.Cryptography.CryptographicException ex) { MessageBoxShow.Error(ex.Message, "", "Не могу расшифровать пароль в конфигурационном файле"); App.Current.Shutdown(1); } _thunderbirdExe = ConfigurationManager.AppSettings["thunderbird_exe"]; _thunderbirdArgs = ConfigurationManager.AppSettings["thunderbird_args"]; try { _thunderbirdIsDays = bool.Parse(ConfigurationManager.AppSettings["thunderbird_is_days"]); _thunderbirdDays = int.Parse(ConfigurationManager.AppSettings["thunderbird_days"]); _thunderbirdDaysText = ConfigurationManager.AppSettings["thunderbird_days_text"]; _thunderbirdFilesText1 = ConfigurationManager.AppSettings["thunderbird_files_text1"]; _thunderbirdFilesText2 = ConfigurationManager.AppSettings["thunderbird_files_text2"]; _thunderbirdFilesText3 = ConfigurationManager.AppSettings["thunderbird_files_text3"]; } catch (Exception ex) { MessageBoxShow.Error(ex.Message, "", "Ошибка в конфигурационном файле"); App.Current.Shutdown(1); } // Проверка проинициализированы ли локальные переменные if ( _server == null || _login == null || _password == null || _thunderbirdExe == null || _thunderbirdArgs == null || _thunderbirdDaysText == null || _thunderbirdFilesText1 == null || _thunderbirdFilesText2 == null || _thunderbirdFilesText3 == null ) { MessageBoxShow.Error("Ошибка в конфигурационном файле"); App.Current.Shutdown(1); } // Инициализация MessageBox`ов MessageBoxShow.MessageErrorTitle = ConfigurationManager.AppSettings["message_error_title"]; MessageBoxShow.MessageErrorText = ConfigurationManager.AppSettings["message_error"]; // Проверка есть ли файлы для отправки на сервер if (_args.Length == 0) { MessageBoxShow.Error("Нет файлов для отправки"); App.Current.Shutdown(1); } if (!AuthenticationHelper.Authentication("access.csv")) { MessageBoxShow.Error("Нет прав. Обратитесь к системному администратору для получения соответствующих прав доступа."); App.Current.Shutdown(1); } }