我已经搜索过Google和Stackoverflow,但无法找到编辑web.config以加密和存储安装脚本的Server连接字符串的解决方案。
以中等信任方式访问web.config上的链接似乎表明下面的代码将代替OpenWebConfiguration工作,但是这并不适用于本地开发服务器(运行中介信任)或Rackspace Cloud (以前的Mosso)。
String cfgpath = Server.MapPath(@"/web.config");
cfg = System.Configuration.ConfigurationManager.OpenExeConfiguration(cfgpath);可以设置Rackspoace来使用模拟保存文件,但是我仍然收到“加载配置文件时发生的错误:请求获取'System.Security.Permissions.FileIOPermission”错误类型的权限“。
对于如何在安装脚本期间编辑web.config来加密和存储Server连接字符串,有什么想法吗?
更新#1似乎DpapiProtectedConfigurationProvider和RsaProtectedConfigurationProvider都需要FullTrust。在使用Web.config时,是否有任何其他解决方案来进一步保护MediumTrust文件?
发布于 2011-09-07 21:09:00
如果提供程序允许,则可以设置自定义策略文件,如如何:在ASP.NET 2.0中使用中介信任中所述。但他们不太可能会让你。
您还可以尝试使用XDocument / XmlDocument和XPath获取/设置配置值,但仍然需要使用运行在中等信任状态下的库来处理加密/解密。(见以中等信任方式以编程方式修改配置部分)
如果可能的话,您还可以尝试使用一个单独的进程来修改其他地方的文件,然后允许通过外部方式将修改后的文件上传到服务器,比如FTP或IIS7的Web特性。
https://stackoverflow.com/questions/1358181
复制相似问题