使用Medium Trust在web.config中加密和保存ASP.NET ConnectionString?

时间:2009-08-31 16:15:00

标签: asp.net web-config medium-trust

我搜索过Google和Stackoverflow,但是看不到用于编辑web.config的解决方案来加密和存储安装脚本的SQL Server连接字符串。

Accessing the web.config in Medium trust处的链接似乎表明以下代码可以使用而不是OpenWebConfiguration,但这不适用于本地开发服务器(运行中信任)或Rackspace Cloud(以前称为Mosso)。

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

Rackspoace Cloud可以设置为使用模拟保存文件,但是我仍然收到“加载配置文件时出错:捕获ConfigurationErrorsException时请求类型'System.Security.Permissions.FileIOPermission'的权限”。

我是否可以编辑web.config以在安装脚本中加密和存储SQL Server连接字符串?

更新#1 DpapiProtectedConfigurationProvider和RsaProtectedConfigurationProvider似乎都需要FullTrust。使用MediumTrust时是否有其他解决方案可以进一步保护Web.config文件?

1 个答案:

答案 0 :(得分:0)

如果您的提供商允许,您可以按照How To: Use Medium Trust in ASP.NET 2.0中的说明设置自定义策略文件。但他们不太可能会让你。

您也可以尝试使用XDocument / XmlDocumentXPath获取/设置配置值,但您仍需要使用库来处理加密/解密以中等信任为中心。 (参见 Modify configuration section programmatically in medium trust

如果可能,您还可以尝试使用单独的进程在其他位置修改文件,然后允许通过外部方式(如FTP或IIS7的Web部署功能)将修改后的文件上载到服务器。