2009-08-31 21 views
2

我已經搜索了谷歌和Stackoverflow周圍,但看不出來解決方案編輯web.config加密和存儲安裝腳本的SQL Server連接字符串。使用中間信任對web.config中的ASP.NET ConnectionString進行加密並保存?

Accessing the web.config in Medium trust的鏈接似乎表明,下面的代碼可以代替OpenWebConfiguration,但是這不適用於本地開發服務器(運行中信任)或Rackspace Cloud(以前稱爲Mosso)。

String cfgpath = Server.MapPath(@"/web.config"); 
cfg = System.Configuration.ConfigurationManager.OpenExeConfiguration(cfgpath); 

Rackspoace雲可以設置保存使用假冒文件,但我仍然收到「發生錯誤加載配置文件:請求類型的權限「System.Security.Permissions.FileIOPermission」錯誤時捕獲ConfigurationErrorsException。

任何想法如何編輯web.config以在安裝腳本期間加密和存儲SQL Server連接字符串?

更新#1看來DpapiProtectedConfigurationProvider和RsaProtectedConfigurationProvider都需要FullTrust。使用MediumTrust時是否還有其他解決方案來保護Web.config文件?

+0

你使用aspnet_regiis來加密web.config嗎? – 2011-08-25 13:49:19

+0

由於託管服務提供商的中等信任要求,我並未最終解決此問題。 – Luke 2011-08-26 02:04:52

回答

0

如果您的提供者允許,您可以設置一個自定義策略文件,如How To: Use Medium Trust in ASP.NET 2.0中所述。但他們不可能讓你。

你也可以嘗試使用XDocument/XmlDocumentXPath獲取/設置配置值,但你仍然有通過使用在中等信任運行庫來處理加密/解密。 (Modify configuration section programmatically in medium trust

如果可能的話,你也可以嘗試使用一個單獨的進程修改該文件在其他地方,然後讓修改後的文件通過外部手段被上傳到服務器,如FTP或Web部署IIS7的功能。

相關問題