C# - 如何从App.config中检索connectionString,加密配置节

时间:2016-07-15 19:50:53

标签: c# encryption configuration app-config

我有一个看起来非常简单的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <connectionStrings>
   <add name="SQLServerConnectionString" connectionString="connection1"/>
   <add name ="OracleServerConnectionString" connectionString="connection2"/>
 </connectionStrings>
</configuration>

没有比这更容易了。我正在尝试加密“connectionStrings”部分。我试过通过跟随许多在线turotrials但尝试做到这一点,但未能让它工作。我想我可能找到了问题的根源。基本上当我这样做时:

string conectionString = ConfigurationManager.ConnectionStrings["SQLServerConnectionString"].ConnectionString;

能够获得“connection1”的预期结果。

然而,当我这样做时:

var appconfigDir = @"C:\Users\Me\Desktop\MyProject\App.config";

System.Configuration.Configuration config = 
ConfigurationManager.OpenExeConfiguration(appconfigDir);

ConnectionStringsSection section = 
config.GetSection("connectionStrings") as ConnectionStringsSection;

var connectionString = section.ConnectionStrings["SQLServerConnectionString"];

我一直变空!有人可以帮我弄这个吗?我无法理解为什么我无法使用第二种方法获取连接字符串。

我正在尝试通过执行以下操作来加密我的“App.config”

section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");

这有效,但当我解密时:

section.SectionInformation.UnprotectSection();

我无法获得原始连接字符串。我基本上只得到一个空白的“connectionString”部分。

0 个答案:

没有答案