最好的做法是加密连接字符串部分。使用ASPNET_REGIIS.EXE,它可以在不同的地方找到:
- 开始 - 的Visual Studio - Visual Studio工具 - Visual Studio命令提示符
- C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319(确保您以管理员身份运行)
前:
<configuration>
<connectionStrings>
<add name="MainConnectionString"
connectionString="data source=Ratbert;database=Sales;username=ASPNET;password=$Double_Rainbow2011"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
运行以下命令:
aspnet_regiis –pef connectionStrings c:\PathToWebSite
或者,如果上面的命令不起作用(你得到ASPNET_REGIIS帮助文本),尝试
aspnet_regiis -pe connectionStrings -app "/" -site 6
其中“6”是该网站的ID为IIS报道。
后:
<connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>Bf677iFrUFW ... +4n4ZZKXCTUAu2Y=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>UDEZ ...QfXUmM5rQ==</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
现在,它是乱码,你不能编辑它。 解密这样的:
aspnet_regiis –pdf connectionStrings c:\PathToWebSite
或者
aspnet_regiis -pd connectionStrings -app "/" -site 6
,然后更改和重新加密。
要读取连接字符串,请使用ConfigurationManager静态类。
string connStr =
ConfigurationManager
.Connectionstrings["MainConnectionString"]
.ConnectionString.ToString();
var myConnection = new SqlConnection(connStr);
myConnection.Open();
来源
2011-11-22 17:47:27
Rap
完美!这正是我正在寻找的。 –