Контейнер ключей 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