Ошибка шифрования Web.config - PullRequest
       19

Ошибка шифрования Web.config

6 голосов
/ 05 января 2010

Возникли проблемы с шифрованием. Я дал всем пользователям все разрешения на папки RSA. Я сделал

C:\>aspnet_regiis -pe "appSettings" -location "web.config" -prov "RsaProtectedCo
nfigurationProvider"
Encrypting configuration section...
An error occurred executing the configuration section handler for appSettings.

Failed to encrypt the section 'appSettings' using provider 'RsaProtectedConfigur
ationProvider'. Error message from the provider: Object already exists.

Failed!

Тогда я сделал

C:\>aspnet_regiis -pa "NetFrameworkConfigurationKey" "administrator"
Adding ACL for access to the RSA Key container...
The RSA key container was not found.
Failed!

Вслед за

C:\>aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
Creating RSA Key container...
The RSA key container could not be opened.
Failed!

У меня ничего не работает.

Может кто-нибудь помочь?

Спасибо

Ответы [ 4 ]

9 голосов
/ 09 марта 2011

Я получил ту же проблему с этой ошибкой:

aspnet_regiis -pa "NetFrameworkConfigurationKey" "{Domain} {Username}"

Приведенная выше строка возвращала сообщение: «Контейнер ключа RSA не найден».

Чтобы решить эту проблему, мне пришлось запустить командную строку от имени администратора (откройте «Пуск»> «Стандартные»>, затем щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора»). Я должен был сделать это, хотя моя учетная запись была учетной записью администратора.

1 голос
/ 05 января 2010

Вам необходимо изменить «администратор» на любую учетную запись, под которой работает ваша служба ASP.NET.Потому что, скорее всего, вы не используете ASP.NET как учетную запись администратора.Если да, то вам следует пересмотреть свое решение.

Например, вот что я использую:

 aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority\Network Service"

или

aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"

Затем для шифрования я использую:

  aspnet_regiis -pef "connectionStrings"

или

 aspnet_regiis -pef "appSettings"
1 голос
/ 05 января 2010
C:\>aspnet_regiis -pe "appSettings" -location "web.config"
       -prov "RsaProtectedConfigurationProvider"

В этой строке ваше местоположение неверно. При использовании -pd расположение коммутатора основано на путях приложения IIS, а в качестве точки шифрования принимается web.config.

Так, например, если у вас есть приложение с именем «Веб-сайт 1» и другое с именем «Веб-сайт 2» в IIS, и вы хотите, чтобы файл web.config в «Веб-сайте 1» был зашифрован, вы должны использовать следующую строку:

C:\>aspnet_regiis -pe "appSettings" -location "Website 1"
        -prov "RsaProtectedConfigurationProvider"

Лично мне было проще использовать переключатель -pef, поскольку я могу указывать непосредственно на физический каталог веб-приложения.

Следуйте инструкциям MSDN по Шифрование информации о конфигурации с использованием защищенной конфигурации . Я использовал его несколько раз, но у меня еще не было проблем с шифрованием.

0 голосов
/ 27 октября 2012

Мне пришлось найти папку, в которой установлены сертификаты, и получить права собственности / дать разрешения, прежде чем ошибки с указанными выше командами исчезнут. В ошибках говорилось, что не удалось найти контейнер с ключами, но на самом деле у меня просто не было разрешений на сертификат. В моем случае я унаследовал компьютер разработчика от кого-то другого, и мне нужно было дать разрешения на файлы, прежде чем я смогу выполнить необходимые команды.

Я надеялся дать более подробный ответ с указанием местоположения папок, подробных шагов и т. Д., Но у меня не было времени, и я просто хотел отметить, что я должен был сделать в моем сценарии.

...