C# 加密web.config时未找到提供程序
我正在尝试加密web.config文件中的自定义节。C# 加密web.config时未找到提供程序,c#,asp.net,encryption,web-config,C#,Asp.net,Encryption,Web Config,我正在尝试加密web.config文件中的自定义节。 当我到达调用ProtectSection()的行时,我得到一个异常,表示找不到提供程序 Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); ConfigurationSection section = config.GetSection("MySection"); section.SectionInf
当我到达调用ProtectSection()的行时,我得到一个异常,表示找不到提供程序
Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection("MySection");
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
我也用RSA进行了尝试,得到了同样的错误。运行aspnet_regiis.exe是可行的,但我需要通过编程来实现。我错过了什么
谢谢。如果您试图使用Windows数据保护提供程序,则不应将传递给ProtectSetion的参数设置为“DpapiProtectedConfigurationProvider”
对于RSA,它应该是
“RsaProtectedConfigurationProvider”
,这是默认和首选选项您可以使用“DataProtectionConfigurationProvider”(-dpapi的提供程序名称中没有dpapi-但RSA的提供程序有),但是,您的问题是无法在名为“MySection”的节上运行iisreg-必须是某些部分
该消息的意思是没有可用于该特定部分的提供程序
但是,要测试代码,您可以使用“AppSettings”
或“connectionStrings”
或“system.net/mailSettings/smtp”
-所有这些都可以与aspnet_regiis.exe一起使用
有关如何加密自定义分区的信息,请参见此部分。我尝试了一下,但仍然遇到相同的错误:无法加密MySection。找不到保护提供程序“DpapiProtectedConfigurationProvider”。无法加密MySection。未找到保护提供程序“RsaProtectedConfigurationProvider”。不,不应将其称为“DpapiProtectedConfigurationProvider”-可能是该提供程序,但它不是您用于该提供程序的字符串。MSN:“名为
DataProtectionConfigurationProvider
的DPAPIProtectedConfigurationProvider实例”