动态加密用户配置设置文件

时间:2014-09-02 21:35:32

标签: c# encryption

我有一个连接到数据库的应用程序。有没有办法加密包含连接字符串的文件以及其他设置?由于数据库连接密码存储在user.config文件中,因此该文件非常公开。我找到的唯一半解决方案是通过添加web.config文件来添加Web应用程序,但我不确定这是否适用于同一方式。是否有关于配置加密的文档?

到目前为止,这是我的尝试:

user.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <userSettings>
        <TimeClock.Properties.Settings>
            <setting name="webserver" serializeAs="String">
                <value>test.js.com/</value>
            </setting>
            <setting name="timeclockConnectionString" serializeAs="String">
                <value>port=3306;server=localhost;user id=root;password=123456;database=timeclock;convertzerodatetime=True</value>
            </setting>
            <setting name="screenmode" serializeAs="String">
                <value>0</value>
            </setting>
        </TimeClock.Properties.Settings>
    </userSettings>
</configuration>

方式:

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(
    ConfigurationUserLevel.PerUserRoamingAndLocal);
string provider = "RsaProtectedConfigurationProvider";
ConfigurationSection connStrings = config.GetSection("timeclockConnectionString");

connStrings.SectionInformation.ProtectSection(provider);
connStrings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);

正如您所看到的,我正在尝试仅加密timeclockConnectionString而不加密。显然,我收到了一个错误:

  

对象引用未设置为对象的实例。

可能源于config.GetSection

非常感谢任何帮助。

0 个答案:

没有答案