3

4.0 フレームワーク アプリケーションと 2.0 フレームワーク アプリケーション間のシングル サインオンが壊れているようです。

asp.net フレームワーク 2.0 で構築された古いアプリケーションと、asp.net フレームワーク 4.0 で構築された新しいアプリケーションがあり、2 つの間で SSO を構成しようとしています。

認証名、ドメイン、保護、およびパスの属性だけでなく、同一の validationKey、decryptionKey、validation、decryption 属性を使用して、同じマシン キーを設定するためのすべての適切な構成を行いました。

奇妙なことに、この構成は私のローカル開発マシンで正常に動作します: - Windows 7 Ultimate (Service Pack 1) - v2.0 統合に設定されたアプリ プールで実行されている 2.0 アプリ - v4.0 統合に設定されたアプリ プールで実行されている 4.0 アプリ

ただし、展開サーバーの Windows イベント ログに、「要求のフォーム認証に失敗しました。理由: 提供されたチケットが無効でした。」: - Windows Server 2008 R2 Standard (Service Pack 1) - 2.0 アプリがアプリ プール セットで実行されています。 v2.0 統合 - v4.0 統合に設定されたアプリ プールで実行されている 4.0 アプリ

デプロイ マシンのマシン キーと認証構成を確認し、再確認し、再確認したので、これが問題ではないことは確かです。

また、議論のために、展開サーバーで、暗号化が問題であり、結果が同じであるかどうかを確認するために、両方のアプリケーションをフォーム保護 = "なし"に設定しようとしました。

また、展開サーバーでは、同じ SSO 設定で構成された他のすべての v2.0 アプリケーションに問題はありません。異なるアプリケーション プールで実行されているものでも。要するに、v2.0 から v2.0 は機能しますが、v4.0 から v2.0 は吐き出します。

助言がありますか?

4

3 に答える 3

3

数日間の絶望の後、これは機能しました:4.0 web.config構成タグで

<appSettings>
    <add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" />
    <add key="aspnet:UseLegacyEncryption" value="true" />
    <add key="aspnet:UseLegacyMachineKeyEncryption" value="true" />
</appSettings>
于 2012-09-04T23:13:56.637 に答える
0

レガシー Web アプリケーション間の暗号化を管理する方法のヒントについては、この質問への回答を参照してください。

于 2012-08-28T18:47:06.183 に答える
0

これらの appSetting キーを追加しても機能しない場合、特にアプリケーションの 1 つが .NET 4.5 をターゲットにしている場合は、MachineKey 要素の互換モードを調整してみてください。

http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode.aspx

于 2013-08-21T15:01:05.460 に答える