AD FS 2.0 サインイン ページは、小さな ASP.NET Web アプリケーション (.NET 2.0 を使用) であり、カスタマイズしてルック アンド フィールと機能を変更できます。(このようなカスタマイズは、Microsoft によって明示的に文書化されています。サインイン ページのカスタマイズとそのサブページを参照してください。)
複数の「ホーム レルム」(=「クレーム プロバイダー信頼」) があり、AD FS 2.0 が (別の「認証ハンドラー」ではなく) フォーム サインインを使用するシナリオがあります。
ページHomeRealmDiscovery.aspxがヒットすると、そのページは何らかの方法で (ユーザーに尋ねるなどして) ホーム レルムを選択し、SelectHomeRealm()を呼び出す必要があります。これは通常、送信ボタンの ASP.NET イベント ハンドラーで行われます。その時点で、制御はFormsSignIn.aspxページに転送されます。
FormsSignIn ページで、HomeRealmDiscovery ページに入力された (AD FS に直接関係しない) データを使用したいと思います。ただし、そのデータにアクセスする方法はありません。
MSDN ページ「方法: ASP.NET Web ページがどのように呼び出されたかを確認する」では、制御がどのように転送されたかを調べる方法について説明しています。私の場合、FormsSignIn ページIsPostBackが false、PreviousPagenull、およびfalse であることがわかりましたIsCallback。(これもIsCrossPagePostBackfalse です。)したがって、MSDN ページは、FormsSignIn ページが「元の要求」を使用して呼び出されたことを示唆しています。しかし、そうではありません.Fiddlerなどを使用して、クライアントブラウザをリダイレクトしても制御が転送されないことを確認しているためです。したがって、これは「サーバー転送」であると予想されるためPreviousPage、HomeRealmDiscovery ページ インスタンスを取得するために使用できます。(Cookie を使用しようとしましたが、ブラウザーが転送に関与していないため、機能しません。)
したがって、私の質問は次のとおりです。AD FS 2.0 の HomeRealmDiscovery.aspx ページから FormsSignIn.aspx ページに値を渡すにはどうすればよいですか?