Thực tiễn tốt nhất là mã hóa phần chuỗi kết nối của bạn. Sử dụng aspnet_regiis.exe, có thể được tìm thấy ở những nơi khác nhau:
- Start - Visual Studio - Visual Studio Tools - Visual Studio Command Prompt
- C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (đảm bảo bạn chạy như một quản trị viên)
Trước:
<configuration>
<connectionStrings>
<add name="MainConnectionString"
connectionString="data source=Ratbert;database=Sales;username=ASPNET;password=$Double_Rainbow2011"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
chạy lệnh này:
aspnet_regiis –pef connectionStrings c:\PathToWebSite
Hoặc, nếu lệnh trên không hoạt động (và bạn nhận được văn bản aspnet_regiis giúp đỡ), thử
aspnet_regiis -pe connectionStrings -app "/" -site 6
nơi "6" là ID của trang web như báo cáo trong IIS.
Sau:
<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>
Bây giờ nó đang bị cắt xén, bạn không thể chỉnh sửa nó. Decrypt như thế này:
aspnet_regiis –pdf connectionStrings c:\PathToWebSite
Hoặc
aspnet_regiis -pd connectionStrings -app "/" -site 6
Và sau đó thay đổi và tái mã hóa.
Để đọc chuỗi kết nối, hãy sử dụng lớp tĩnh ConfigurationManager.
string connStr =
ConfigurationManager
.Connectionstrings["MainConnectionString"]
.ConnectionString.ToString();
var myConnection = new SqlConnection(connStr);
myConnection.Open();
Hoàn hảo! Đây chính xác là những gì tôi đang tìm kiếm. –