我搜索过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文件?
答案 0 :(得分:0)
如果您的提供商允许,您可以按照How To: Use Medium Trust in ASP.NET 2.0中的说明设置自定义策略文件。但他们不太可能会让你。
您也可以尝试使用XDocument
/ XmlDocument
和XPath
获取/设置配置值,但您仍需要使用库来处理加密/解密以中等信任为中心。 (参见 Modify configuration section programmatically in medium trust)
如果可能,您还可以尝试使用单独的进程在其他位置修改文件,然后允许通过外部方式(如FTP或IIS7的Web部署功能)将修改后的文件上载到服务器。