public static void UpdateWebConfig(string configPath, bool isProtectData, DatabaseType databaseType, string connectionString, string adminDirectory, string secretKey, bool isNightlyUpdate) { var doc = new XmlDocument(); doc.Load(configPath); var dirty = false; var appSettings = doc.SelectSingleNode("configuration/appSettings"); if (appSettings != null) { foreach (XmlNode setting in appSettings) { if (setting.Name == "add") { var attrKey = setting.Attributes?["key"]; if (attrKey != null) { if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(IsProtectData))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = isProtectData.ToString(); dirty = true; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(DatabaseType))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = databaseType.Value; if (isProtectData) { attrValue.Value = TranslateUtils.EncryptStringBySecretKey(attrValue.Value, secretKey); } dirty = true; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(ConnectionString))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = connectionString; if (isProtectData) { attrValue.Value = TranslateUtils.EncryptStringBySecretKey(attrValue.Value, secretKey); } dirty = true; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(AdminDirectory))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = adminDirectory; dirty = true; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(SecretKey))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = secretKey; dirty = true; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(IsNightlyUpdate))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { attrValue.Value = isNightlyUpdate.ToString(); dirty = true; } } } } } } if (dirty) { var writer = new XmlTextWriter(configPath, Encoding.UTF8) { Formatting = Formatting.Indented }; doc.Save(writer); writer.Flush(); writer.Close(); } IsProtectData = isProtectData; DatabaseType = databaseType; ConnectionString = connectionString; }
public static void Load(string physicalApplicationPath) { PhysicalApplicationPath = physicalApplicationPath; var isProtectData = false; var databaseType = string.Empty; var connectionString = string.Empty; try { var doc = new XmlDocument(); var configFile = PathUtils.Combine(PhysicalApplicationPath, WebConfigFileName); doc.Load(configFile); var appSettings = doc.SelectSingleNode("configuration/appSettings"); if (appSettings != null) { foreach (XmlNode setting in appSettings) { if (setting.Name == "add") { var attrKey = setting.Attributes?["key"]; if (attrKey != null) { if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(IsProtectData))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { isProtectData = TranslateUtils.ToBool(attrValue.Value); } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(DatabaseType))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { databaseType = attrValue.Value; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(ConnectionString))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { connectionString = attrValue.Value; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(AdminDirectory))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { AdminDirectory = attrValue.Value; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(SecretKey))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { SecretKey = attrValue.Value; } } else if (StringUtils.EqualsIgnoreCase(attrKey.Value, nameof(IsNightlyUpdate))) { var attrValue = setting.Attributes["value"]; if (attrValue != null) { IsNightlyUpdate = TranslateUtils.ToBool(attrValue.Value); } } } } } if (isProtectData) { databaseType = TranslateUtils.DecryptStringBySecretKey(databaseType); connectionString = TranslateUtils.DecryptStringBySecretKey(connectionString); } } } catch { // ignored } IsProtectData = isProtectData; DatabaseType = DatabaseTypeUtils.GetEnumType(databaseType); ConnectionString = connectionString; if (string.IsNullOrEmpty(AdminDirectory)) { AdminDirectory = "siteserver"; } if (string.IsNullOrEmpty(SecretKey)) { SecretKey = StringUtils.GetShortGuid(); //SecretKey = "vEnfkn16t8aeaZKG3a4Gl9UUlzf4vgqU9xwh8ZV5"; } }
public static string GetLoadingUrl(string url) { return(GetAdminDirectoryUrl($"loading.aspx?redirectUrl={TranslateUtils.EncryptStringBySecretKey(url)}")); }