private void InitializeConfigurationSettings() { if (!File.Exists(_settingsFileName)) { _configurationSettings.Add("BackupZips", @"C:\NovantBackups\SQLBackups\"); _configurationSettings.Add("ScratchPad", @"C:\NovantBackups\Scratch\"); _configurationSettings.Add("DbFileLocations", @"C:\Program Files\Microsoft SQL Server\MSSQL13.SQLSVR_2016\MSSQL\DATA\"); _configurationSettings.Add("ConnectionString", "Server=CTB-MAXIMUS-PC;Database=master;Trusted_Connection=True"); _configurationSettings.Add("LocalRetentionMonths", "6"); _configurationSettings.Add("LocalRetentionDays", "0"); _configurationSettings.Add("EmailUseEmailSettings", "false"); _configurationSettings.Add("EmailFromEmail", "*****@*****.**"); _configurationSettings.Add("EmailSuccessEmail", "*****@*****.**"); _configurationSettings.Add("EmailFailureEmail", "*****@*****.**"); _configurationSettings.Add("EmailSMTPOutgoingServer", "smtpout.secureserver.net"); _configurationSettings.Add("EmailSMTPPort", "25"); _configurationSettings.Add("EmailLoginUserName", "*****@*****.**"); _configurationSettings.Add("EmailLoginUserPassword", "Babylon5"); _configurationSettings.Add("EmailRequiresSSL", "true"); _configurationSettings.Add("EmailEnableSSL", "true"); _configurationSettings.Add("EmailOutgoingPortNumber", "465"); _configurationSettings.Add("FTPUseFTPSettings", "false"); _configurationSettings.Add("FTPHostAddress", ""); _configurationSettings.Add("FTPUserName", "BobRhinehardt"); _configurationSettings.Add("FTPPassword", "S#u1p!D"); _configurationSettings.Add("FTPPort", "21"); _configurationSettings.Add("FTPDataConnection", "Passive(PASV)"); _configurationSettings.Add("FTPRemoteFolder", @"ftp://ftp.addressyourcompany"); _configurationSettings.Add("FTPWriteSessionToLog", "true"); _configurationSettings.Add("FTPRetentionsMonths", "6"); _configurationSettings.Add("FTPRetentionDays", "0"); FileStream fs = new FileStream(_settingsFileName, FileMode.Append); foreach (KeyValuePair <string, string> setting in _configurationSettings) { // ------------------------------------------------------- // This time let's encrypt only the data, delimit with a : // ------------------------------------------------------- string encryptedConfigLine = setting.Key + ":" + CryptographyCBC.EncryptString(setting.Value, _encryptionKey) + Environment.NewLine; byte[] bConfigLine = Encoding.Default.GetBytes(encryptedConfigLine); fs.Write(bConfigLine, 0, bConfigLine.Length); } fs.Close(); } }
private void ReadConfigurationSettings() { if (File.Exists(_settingsFileName)) { _configurationSettings.Clear(); string[] configurationLines = File.ReadAllLines(_settingsFileName); string configLine = String.Empty; string[] splitKeyValue; string splitValue; string decryptedValue; string decryptedKey; foreach (string configSettingPair in configurationLines) { splitKeyValue = configSettingPair.Split(':'); decryptedKey = splitKeyValue[0]; splitValue = splitKeyValue[1]; // this is still encrypted decryptedValue = CryptographyCBC.DecryptString(splitValue, _encryptionKey); _configurationSettings.Add(decryptedKey, decryptedValue); } _configurationSettings.TryGetValue("BackupZips", out string backupZipDirectory); txtBackupZips.Text = backupZipDirectory; _configurationSettings.TryGetValue("ScratchPad", out string scratchPadDirectory); txtScratchPad.Text = scratchPadDirectory; _configurationSettings.TryGetValue("DbFileLocations", out string dbFileDirectory); txtSQLFileLocations.Text = dbFileDirectory; _configurationSettings.TryGetValue("LocalRetentionMonths", out string months); nudMonths.Value = Convert.ToInt32(months); _configurationSettings.TryGetValue("LocalRetentionDays", out string days); nudDays.Value = Convert.ToInt32(days); _configurationSettings.TryGetValue("EmailSuccessEmail", out string successfulEmail); txtSuccessEmail.Text = successfulEmail; _configurationSettings.TryGetValue("EmailFailureEmail", out string failureEmail); txtFailureEmail.Text = failureEmail; _configurationSettings.TryGetValue("EmailUseEmailSettings", out string useEMailSettigns); chkConfigureEmails.Checked = Convert.ToBoolean(useEMailSettigns == "true"); _configurationSettings.TryGetValue("ConnectionString", out string connectionString); txtConnectionString.Text = connectionString; _configurationSettings.TryGetValue("EmailFromEmail", out string emailFromEmail); txtFromEmail.Text = emailFromEmail; _configurationSettings.TryGetValue("EmailSMTPOutgoingServer", out string SMTPOutgoingServer); txtSMTPServer.Text = SMTPOutgoingServer; _configurationSettings.TryGetValue("EmailSMTPPort", out string EmailSMTPPort); nudFTPPort.Value = Convert.ToInt32(EmailSMTPPort); _configurationSettings.TryGetValue("EmailRequiresSSL", out string EmailRequiresSSL); chkServerRequiresAuth.Checked = Convert.ToBoolean(EmailRequiresSSL == "true"); _configurationSettings.TryGetValue("EmailEnableSSL", out string EmailEnableSSL); chkEnableSSL.Checked = Convert.ToBoolean(EmailEnableSSL == "true"); _configurationSettings.TryGetValue("EmailLoginUserName", out string EmailLoginUserName); txtEmailLoginUserName.Text = EmailLoginUserName; _configurationSettings.TryGetValue("EmailLoginUserPassword", out string EmailLoginUserPassword); txtEmailLoginUserPassword.Text = EmailLoginUserPassword; _configurationSettings.TryGetValue("EmailOutgoingPortNumber", out string EmailOutgoingPortNumber); nudEmailOutgoingPortNumber.Value = Convert.ToInt32(EmailOutgoingPortNumber); } }