3

如何仅加密 web.config 文件中的密码?

<add name="PSystem" connectionString="Server=test;Database=Dev;User ID=testuser;Password=password@123;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient" />
4

3 回答 3

2

我相信内置的加密机制适用于整个 connectionString 部分:

有关更多信息,请参阅此网站

如果您想加密内存密码,可能由用户通过登录表单输入,您可以使用SecureString

于 2012-04-24T04:28:35.727 回答
1

您可以尝试在连接字符串中使用标志,如下所示:

<add name="PSystem" 
 connectionString="Server=test;
                   Database=Dev;
                   User ID=@UserID@;
                   Password=#Password#;
                   Trusted_Connection=False;
                   Encrypt=True;" 
  providerName="System.Data.SqlClient" />

然后您可以拥有加密的用户和密码,如下所示:

<add key="DB_User" value = [Encrypted Username]>
<add key="DB_Password" value = [Encrypted Password]>

然后在代码中你只需替换标志:

string _connectionString = ConfigurationManager.ConnectionStrings["PSystem"].ConnectionString;

string user = Decrypt(ConfigurationManager.AppSettings["DB_User"]);
string password = Decrypt(ConfigurationManager.AppSettings["DB_Password"]);

_connectionString = _connectionString.Replace("##User##", user).Replace("##Password##", password);
于 2013-03-06T21:51:52.590 回答
1

要加密配置文件内容,请使用带有 –pe 选项和要加密的配置元素名称的 Aspnet_regiis.exe 工具。

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

来源: http: //msdn.microsoft.com/en-us/library/zhhddkxy (v=vs.100).aspx

于 2013-12-05T02:49:21.607 回答