我有一个连接到数据库的应用程序。有没有办法加密包含连接字符串的文件以及其他设置?由于数据库连接密码存储在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
。
非常感谢任何帮助。