Провайдер не найден при шифровании web.config - PullRequest
2 голосов
/ 03 октября 2010

Я пытаюсь зашифровать пользовательский раздел в файле web.config.
Когда я попадаю на строку, которая вызывает ProtectSection (), я получаю исключение, сообщающее, что поставщик не найден.

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);  
ConfigurationSection section = config.GetSection("MySection");  
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 

Я тоже попробовал его с RSA и получил ту же ошибку.
Запуск aspnet_regiis.exe работает, но мне нужно сделать это программно.Что мне не хватает?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2013

Вы вправе использовать `DataProtectionConfigurationProvider '( см. Здесь для имен поставщиков - имя поставщика для dpapi не содержит dpapi - но поставщик для rsa делает ), однако ваша проблема в том, что вы не можете запустить iisreg в разделе с именем «MySection» - это должны быть определенные разделы.

Что означает сообщение, так это то, что нет поставщика, доступного для использования с этим конкретным разделом.

Однако, чтобы проверить свой код, вы можете попробовать его с "AppSettings" или "connectionStrings" или "system.net/mailSettings/smtp". - все из которых работают с aspnet_regiis.exe.

См. Этот другой поток Stack Exchange о том, как шифровать пользовательские разделы.

1 голос
/ 03 октября 2010

Если вы пытаетесь обратиться к нам, провайдер защиты данных Windows не должен передавать передаваемый ProtectSetion параметр "DpapiProtectedConfigurationProvider".

Для RSA это должно быть "RsaProtectedConfigurationProvider", что по умолчанию и предпочтительный вариант

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...