C# 加密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

我正在尝试加密web.config文件中的自定义节。
当我到达调用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实例”