加密web.config

时间:2011-06-04 09:36:42

标签: c# asp.net web-config asp.net-4.0

这是我的c#代码:

System.Configuration.Configuration config =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/Web.config");

ConfigurationSection section = config.GetSection("appSettings");
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");
section.SectionInformation.ForceSave = true;        
config.Save(ConfigurationSaveMode.Modified);
string sectionXml = section.SectionInformation.GetRawXml();

我需要以编程方式加密web.config,但它给了我错误:

  

无法为请求的配置对象创建配置文件。

1 个答案:

答案 0 :(得分:3)

错误发生在~/web.config上,OpenWebConfiguration需要完整的应用程序路径,而不是web上显示的web.config名称。

试试这个(测试并为开场工作):

OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);

或(基于msdn示例代码)

OpenWebConfiguration(/web.config);

甚至可以将 null 称为MSDN notes