我正在使用
Windows Azure的共享网站.我想加密我的web.config部分,但是,我收到此错误:
无法使用提供程序’RsaProtectedConfigurationProvider’解密.来自提供程序的错误消息:无法打开RSA密钥容器.
我的网站中有一个页面会对该文件进行加密,然而,几个小时后我就会收到此错误.我是否需要将我的机器密钥发送到Azure,或者他们是否有我可以使用的密钥?
/// <summary> /// About view for the website. /// </summary> /// <returns>Action Result.</returns> public ActionResult About() { Configuration objConfig = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings"); if (!objAppsettings.SectionInformation.IsProtected) { objAppsettings.SectionInformation.ProtectSection( "RsaProtectedConfigurationProvider"); objAppsettings.SectionInformation.ForceSave = true; objConfig.Save(ConfigurationSaveMode.Modified); } return View(); }
解决方法
它可能不是您正在寻找的,但您可以使用Azure仪表板中的“配置”选项卡在运行时覆盖AppSettings,以便web.config不存储任何实际的敏感数据.
App Settings – Specify name/value pairs that will be loaded by your web application on start up. For .NET sites,these settings will be injected into your .NET configuration AppSettings at runtime,overriding existing settings. For PHP and Node sites these settings will be available as environment variables at runtime.