最好的做法是加密連接字符串部分。使用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
完美!這正是我正在尋找的。 –