0

このエラーを断続的にスローしている Web ファームで実行されている認証済み WCF サービスがあります。

MessageSecurityException: SecurityContextSecurityToken に無効な Cookie があります。Cookie の処理中に次のエラーが発生しました:「SecurityContextSecurityToken の Cookie 要素のデコード中にエラーが発生しました。」---> CryptographicException: DataProtectionSecurityStateEncoder がバイト配列をデコードできません。「UserProfile」がロードされていることを確認します。これが「Web ファームのシナリオ」である場合は、すべてのサーバーがローミング プロファイルを持つ同じユーザーとして実行されていることを確認するか、カスタム SecurityStateEncoder を提供してください。---> CryptographicException: 指定された状態での使用に対してキーが無効です。

上記を掘り下げるのにかなりの時間を費やしましたが、エラーを理解していると思います....しかし、DataProtectionSecurityStateEncoderの構成方法に関する情報が見つかりません。

ローカル コンピューターの設定を使用するようにエンコーダーを構成したいのですが(マシン キーなどを同期しました)、完全に行き詰まっています。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

考えられる解決策を含む更新です。次の方法でこれを解決できる可能性があると思います。

protected void Application_BeginRequest(object sender, EventArgs e)
{
    OperationContext.Current.Host.Credentials.SecureConversationAuthentication.SecurityStateEncoder = new DataProtectionSecurityStateEncoder(false);
}

これはまだテスト中ですが、発生した優先度の高い問題を解決している間、この問題は保留されています。

他の誰かが同様の問題を抱えていて、解決策を見つけることができない場合に備えて、ここに注意してください (そして、私たちのように、ドメイン外で実行されている Web ファームを持っている人)。

仕事に戻ったら、この回答を更新します。

于 2015-05-20T07:36:55.317 に答える