2 つの .NET C# プロジェクトがあります。これらは、同じドメイン (domain.com など) の下に展開されます。
1 つのプロジェクトも数年で作成されました。.NET 4.0 を使用しています。MAIN_1 としましょう。このプロジェクトは、さらに古い (.NET 3.5) 別の外部プロジェクトを使用してユーザーを認証します。AUTH_PROJ としましょう。VS2012 で MVC4 と .NET 4.5 を使用して新しいプロジェクトを作成しています。MAIN_2 としましょう。MAIN_1 と MAIN_2 は同じドメイン (例: domain.com) に展開されます。私の目標は、ユーザーが MAIN_1 にログインし、MAIN_2 でも認証されるようにすることです。オンラインで検索したところ、この投稿http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applicが非常に興味深く、便利であることがわかりました。Visual Studio 2012 Professional でいくつかの単純な MVC プロジェクトを作成して、シングル サインオンをテストしました。
- プロジェクト 1: .NET4.5 MVC4 インターネット プロジェクト。=> ウェブサイト 1
- プロジェクト 2: プロジェクト 1 と同じ。 => Web サイト 2
- プロジェクト 3: .NET 4 MVC3 インターネット プロジェクト。=> ウェブサイト 3
- プロジェクト 4: プロジェクト 2 と同じ。 => Web サイト 4
この 4 つのプロジェクトでは、同じマシン キーを追加し、Web.config ファイルのフォーム認証に domain="localhost" を追加しました。
次に、シングルサインオンをテストしました。Web サイト 1 でアカウントを作成し、ログインしました。Web サイト 2 を開いたところ、すでにログインしています。Web サイト 3 と 4 も同様です。
しかし、異なるフレームワークを混在させると、何も機能しません。
firebug でブラウザの Cookie を確認しました。.ASPXAUTH Cookie はそこに残ります。しかし、Cookie がプロジェクト 1 によって作成され、プロジェクト 3 をデバッグすると、.ASPXAUTH Cookie を除くすべての Cookie を取得できます。.ASPXAUTH はフレームワークに依存しているようで、Firefox では表示されますが、他のフレームワーク プロジェクトでは表示されません。
.ASPXAUTH Cookie が C# コードで非表示になる理由と、シングル サインオンを機能させる他の方法はありますか? ありがとうございました