誰かがWebファーム環境のユーザーストアでDPAPIを正常に使用したかどうか疑問に思いましたか?
このアプリケーションは最近1.1から2.0ASP.NETアプリに変換されたため、CryptUnprotect
メソッドを直接呼び出すカスタムラッパーを使用しています。ProtectedData
ただし、これは2.0フレームワークで使用可能な方法と同じである必要があります。
Webファーム環境で運用しているため、暗号化を行ったマシンが復号化するマシンになることを保証することはできません。(また、マシンの障害によって暗号化されたデータが破壊されてはならないため)。
つまり、私たちが持っているのは、各Webボックスの特定のユーザーアカウントの下でサービスで実行されるサービスコンポーネントです。このユーザーは、推奨事項に従って、移動プロファイルを持つように設定されています。
私たちが抱えている問題は、あるマシンで暗号化された情報を別のマシンでは復号化できないことです。これは、win32エラーで失敗します。
「キーは指定された状態での使用には無効です」。
これは、暗号化サービスを複数のマシンでユーザーとして実行しているため、ユーザーが同時に複数のマシンにログインし続けているために、間違いを犯したためだと思います。
これが問題である場合、他のWebファーム環境のユーザーストアでDPAPIをどのように使用していますか?