Не удалось зашифровать раздел "connectionStrings" с помощью поставщика "RsaProtectedConfigurationProvider"

Не удалось зашифровать раздел "connectionStrings" с помощью поставщика "RsaProtectedCo nfigurationProvider. Сообщение об ошибке от поставщика: объект уже существует.

Я выполнил руководство в http://msdn.microsoft.com/en-us/library/2w117ede.aspx, но на шаге 3, чтобы предоставить доступ к идентификатору ASP.NET для контейнера ключей RSA, он говорит, что моя личность моя рабочая группа\имя пользователя, у меня нет олицетворения в моем файле web.config, хотя

Я шифрую web.config, используя мою машину, используя asp_regiis, а затем используя визуальную студию для отладки, она пришла с этой ошибкой

Ответы

Ответ 1

Для использования RsaProtectedConfigurationProvider вам необходимо запустить командную строку или Visual Studio в качестве администратора.

Для DataProtectionConfigurationProvider не требуется запускаться под правами администратора.

Ответ 2

Вы можете создать своего собственного провайдера, используя RsaProtectedConfigurationProvider для шифрования вашего web.xml без прав администратора.

  1. Создайте хранилище ключей:

    aspnet_regiis -pc "MyKeyStore" -exp

  2. Предоставить доступ на чтение любому пользователю:

    aspnet_regiis -pa "MyKeyStore" "Домен/Пользователь"

  3. Поместите раздел провайдера в ваш web.config

    <configProtectedData>
    <providers>
        <add name="MyRSAProvider" type="System.Configuration.RsaProtectedConfigurationProvider,System.Configuration, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"keyContainerName="MyKeyStore"useMachineContainer="true" />
    </providers>
    </configProtectedData>
    
  4. Зашифруйте ваши разделы конфигурации:

    aspnet_regiis -pef "configSection" "c:\pathToWebConf" -prov "MyRSAProvider"

Источники:

Создать контейнер ключей RSA и провайдера

Зашифровать конфигурацию

Ответ 3

Это произошло на одном из моих серверов, когда я пытался переместить веб-приложения с диска c на другой диск.

Поскольку я зашифровал раздел web.config на диске C и переместил его на другой диск, он заклинило провайдера, из-за чего он не смог зашифровать раздел, поскольку считает, что он уже существует.

Я все еще пытаюсь это исправить.