1

複数のサーバーとサブドメインでフォーム認証を設定しようとしていますが、一部のボックスでは機能し、他のボックスでは機能しないという問題が見つかりました。あるサーバーから別のサーバーに 2 つの Cookie を渡しています。1 つはフォーム認証で暗号化された Cookie で、もう 1 つは暗号化されていない Cookie です。

両方のボックスに正しいキーが設定されています。

<authentication mode="Forms" >
  <forms name=".MSLA" protection="All" timeout="30" slidingExpiration="true" path="/"
         enableCrossAppRedirects="true" />
</authentication>
<machineKey
  decryption="AES"
  decryptionKey="CAB....."
  validation="AES"
  validationKey="A2........."
/>

正しい Cookie ドメインを設定しています。一方のサイトとしての .bbbb.com はhttp://login.bbbb.comになり、もう一方のサイトはhttp://app.bbbb.comになります。

ASP.net と .Net 4.0 を使用しています

機能するボックスでは、isAutenticated が true であり、フォーム認証のユーザー名が復号化されていることがわかりますが、機能しない他のボックスのセットでは、非フォーム認証 Cookie が正しく渡されて読み取られることがわかりますが、フォームは認証 Cookie は渡されます (Firebug で確認できます) が、2 番目のサイトはそれを復号化できないため、isAuthenicated は False です。

Windows Server 2008 を使用しており、1 か月前に適用された更新プログラムを使用しています。

私の問題に似たこの記事を見て、これを試しましたが、うまくいきません。

同じ問題があるが機能しない類似の記事

以前にこの問題に遭遇した人はいますか? 他のサーバーではなく一部のサーバーで動作させることができるので、コードではなくサーバーのセットアップの問題であるに違いないと考えています。これらのサーバーに追加する必要がある機能はありますか?

4

1 に答える 1

2

アップデート

私は問題が何であるかを発見しました。すべてのサーバーを最新のサービス パックに完全に更新する必要がありました。Microsoft は復号化アルゴリズムを変更したにちがいなく、ボックスには異なる更新が含まれている必要があります。

この変更について皆様にお知らせいただきありがとうございます。

于 2012-07-25T10:49:55.760 に答える