App.config文件控制台应用程序中的保护部分
时间:2020-03-06 15:02:47 来源:igfitidea点击:
我正在尝试对控制台应用程序的App.config文件中的appSettings
和connectionStrings
部分进行加密。由于某些原因,section.SectionInformation.IsProtected始终返回true。
static void Main(string[] args) { EncryptSection("connectionStrings", "DataProtectionConfigurationProvider"); } private static void EncryptSection(string sectionName, string providerName) { string assemblyPath = Assembly.GetExecutingAssembly().Location; Configuration config = ConfigurationManager.OpenExeConfiguration(assemblyPath); ConfigurationSection section = config.GetSection(sectionName); if (section != null && !section.SectionInformation.IsProtected) { section.SectionInformation.ProtectSection(providerName); config.Save(); } }
不知道为什么它总是返回true。
解决方案
代码将打开当前的应用程序配置。我们可以尝试以下方法:
static void Main(string[] args) { if (args.Length != 0) { Console.Error.WriteLine("Usage : Program.exe <configFileName>"); // App.Config } EncryptSection(args[0], "connectionStrings", "DataProtectionConfigurationProvider"); } private static void EncryptSection(string configurationFile, string sectionName, string providerName) { Configuration config = ConfigurationManager.OpenExeConfiguration(configurationFile); ConfigurationSection section = config.GetSection(sectionName); if (section != null && !section.SectionInformation.IsProtected) { section.SectionInformation.ProtectSection(providerName); config.Save(); } }