2

我在 Google 和 Stackoverflow 上进行了搜索,但找不到解决方案来编辑​​ web.config 以加密和存储安装脚本的 SQL Server 连接字符串。

Accessing the web.config in Medium trust 中的链接 似乎表明以下代码可以代替 OpenWebConfiguration 工作,但是这在本地开发服务器(运行 Medium Trust)或 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 文件?

4

1 回答 1

0

如果您的提供商允许,您可以按照如何:在 ASP.NET 2.0 中使用中等信任中所述设置自定义策略文件。但他们不太可能会让你。

您也可以尝试使用XDocument/XmlDocumentXPath获取/设置配置值,尽管您仍然必须使用以中等信任度运行的库来处理加密/解密。(请参阅 以中等信任方式以编程方式修改配置部分

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

于 2011-09-07T21:09:00.837 回答