1. ホーム
  2. asp.net

[解決済み] RSAキーコンテナを開くことができませんでした。

2022-02-18 10:31:20

質問内容

XP homeが動作する古いマシンでASP.NETのサイトを開発しています。最近、新しいWin 7 PCを購入し、すべてのプロジェクトファイルを移動させました。プロジェクトを実行しようとすると、次のようなエラーメッセージが表示されます。

"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

これも成功したのですが、まだエラーが出ます。いろいろ読んでいると、" \Desktop" の代わりに "ASPNET" を使っている人がいるようです(デスクトップは私のマシン名)。しかし、私が"ASPNET"を使おうとすると、こうなります。

No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534

これが直るまでプロジェクトに取り組むことができないので、どんなことでもご協力をお願いします。 ありがとうございます。

解決方法を教えてください。

古いマシンにまだアクセスできるのであれば、そのマシンの設定セクションを解読し、暗号化されていない設定ファイルを新しいマシンにコピーする(必要であれば古いマシンのファイルを再暗号化する)ことはいつでもできます。

Windows 7 では、IIS アプリケーション プールをデフォルトで実行するアカウントは、おそらく ApplicationPoolIdentity (とは対照的です エーエスピーネット ). 権限を付与するには、次のようにしてください。

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