Контейнер ключей RSA не открывается
Я разрабатываю сайт ASP.NET на более старой машине, на которой запущена XP. Недавно я получил новый компьютер Win 7 и переместил все мои файлы проектов. Когда я пытаюсь запустить проект, я получаю следующее сообщение об ошибке:
"Failed to decrypt using provider 'MyRsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."
Я понял, что зашифровал части моего файла web.config с помощью RSA encryption
. В этом и заключается проблема. Я не уверен, как заставить этот ключ работать снова, чтобы я мог использовать его на своей новой машине. Я экспортировал ключ из старой машины и импортировал его с помощью:
aspnet_regiis -pi "RSAProviderName" "C:\RSA_configkey.xml"
Это было успешно импортировано. Затем я запустил проект, но появилось одно и то же сообщение об ошибке. Я решил, что это может быть правкой, поэтому я побежал:
aspnet_regiis -pa "RSAProviderName" "\Desktop" -full
Это также было успешным, но я все еще получаю ошибку. От чтения, я видел, как люди используют "ASPNET" вместо "\ Desktop" (Desktop - это мое имя машины). Однако, когда я пытаюсь использовать "ASPNET", я получаю:
No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534
Я не могу работать над проектом до тех пор, пока это не будет исправлено, поэтому любая помощь очень ценится.
Спасибо!
Ответы
Ответ 1
Если у вас все еще есть доступ к старой машине, вы всегда можете расшифровать раздел конфигурации на этом компьютере, а затем скопируйте незашифрованный файл конфигурации на новый компьютер (и, если необходимо, заново зашифруйте файл на старой машине).
В Windows 7 учетная запись, на которой запущены пулы приложений IIS по умолчанию, будет ApplicationPoolIdentity (в отличие от ASPNET). Чтобы предоставить разрешения, попробуйте следующее:
aspnet_regiis -pa RSAProviderName "IIS APPPOOL\DefaultAppPool" -full
Кстати, если вы решите продолжить копирование ключа с старого компьютера на новый, вы должны убедиться, что при экспорте вы также экспортируете данные личного ключа:
aspnet_regiis -px RSAProviderName C:\RSA_configkey.xml -pri
И, факультативно, чтобы экспортировать ключевые данные во время импорта:
aspnet_regiis -pi RSAProviderName C:\RSA_configkey.xml -exp