如何在应用配置文件中定义和加密连接字符串

时间:2018-10-03 07:03:46

标签: c#

我已经用c#创建了一个应用程序。我在应用程序配置文件中定义了一个连接字符串。这是我的应用程序配置文件代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="True">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <appSettings>
    <add key="con" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\Mydb.mdb;Persist Security Info=True;Jet OLEDB:Database Password=bd1234" />
  </appSettings>
</configuration>

我想使用以下格式和加密的密码值创建该代码。

<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="ServerName" value="user"/>
    <add key="Provider" value="Microsoft.Jet.OLEDB.4.0"/>
    <add key="Data Source" value="C:\myFolder\Mydb.mdb"/>
    <add key="Persist Security Info" value="True"/>
    <add key="Jet OLEDB:Database Password" value="*******"/>
  </appSettings>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>    
</configuration>

我该怎么做?

2 个答案:

答案 0 :(得分:0)

好问题。

理想情况下,如果可以使用Windows身份验证,则可以解决问题,而不必保护配置文件。

尝试添加以下内容:

 <add key="con" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\Mydb.mdb;Persist Security Info=False;Integrated Security=SSPI;Jet OLEDB:Database" />

这是MSDN文档,具有更多详细信息: https://docs.microsoft.com/en-us/visualstudio/ide/managing-application-settings-dotnet?view=vs-2017

如果确实需要保护您的应用程序配置,则可以使用.NET框架“ ProtectSection”功能,该功能将加密您的配置文件(使用machine.config密钥),并且您的应用程序将能够访问配置详细信息,但它不容易看到。

鉴于安全隐患,值得详细了解其工作方式: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-and-configuration-files

答案 1 :(得分:-1)

您在下面尝试过吗?

 string value = System.Configuration.ConfigurationManager.AppSettings[key];

需要添加引用System.Configuration

enter image description here

如果您知道如何进行加密,则可以按照以下方式保存加密的密码

How to update app settings key value pair dynamically on app.config file in c# winforms

要进行加密并保存应用设置,请点击@ksdev的链接

Encrypt password in App.config