步驟1創建RSA密鑰對
aspnet_regiis -pc yourkey -exp
第二步導出你的XML文件
aspnet_regiis -px yourkey keyfile.xml -pri
鍵在各機
第三步:導入你的容器
aspnet_regiis -pi yourkey keyfile.xml (see step 2)
對於每個機器
第四步編輯的machine.config(規範的路徑C:\的Windows \ Microsoft.NET \框架[64 | 32]符\ v [版] \配置)
添加在第configProtectedData此以下元件,並設置defaultProvider = 「YourProvider」
<add name="YourProvider"
type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
description="Uses RsaCryptoServiceProvider to encrypt and decrypt for my infrastucture"
keyContainerName="yourkey"
cspProviderName=""
useMachineContainer="true"
useOAEP="false" />
然後你可以在一臺機器加密和其他粘貼,請記住,必須給予的特權用戶
aspnet_regiis -pa yourkey [DOMAIN\USER]
Administrators組已授權。
欲瞭解更多信息http://msdn.microsoft.com/en-us/library/yxw286t2(v=vs.90).aspx
當然這個步驟,你可以把一個PowerShell /批處理文件
另一種方式的加密通過代碼connectionStrings節是
var connectionStrings = ConfigurationManager.GetSection("connectionStrings")
if(!section.SectionInformation.IsProtected)
connectionStrings.SectionInformation.ProtectSection("YourProvider");
在連接和客戶端/服務器場景我建議你在廣泛的網絡中採用的解決方案不是在app.config中分發連接字符串,而是在可以是Web服務或RESTful的服務中要求連接的信息用戶認證後的服務。
在步驟多個O少因此
- 驗證用戶
- 需要在提供服務與用戶名作爲參數(HTTPS協議)
- 服務返回連接字符串
- 應用它連接在連接信息DB
使用此解決方案,您可以選擇用戶連接的服務器,如果您有區域服務器或多個服務器
我希望有所幫助
我是否爲每臺機器使用相同的RSA密鑰對?每個將執行該應用程序的域用戶都需要該密鑰的特權嗎? – hofmeister 2014-10-10 16:23:25
是的,您必須在所有機器上使用相同的密鑰,並將權限授予唯一的應用程序池用戶,即網絡服務或應用程序的應用程序 – Fabio 2014-10-10 16:54:09
我認爲這是服務器場的一個很好的解決方案。但是如果你想爲1000多臺機器和用戶提供你的應用程序呢? – hofmeister 2014-10-10 18:39:27