1

ADFS と統合された MVC アプリケーションを使用しています。

概要

ADFS 認証を呼び出す前にセッションを設定しています。ADFS呼び出しが戻った後、以前に設定したセッションが失われました。

詳細な説明

ステップ 1 アプリケーション URL の呼び出し

https://hrcentral/mainmodule/expense/index

ステップ2上記の呼び出しは、アプリケーションのhttphandlerであるWIFコンポーネントにリクエストをリダイレクトするため、URL:https://hrcentral/federationMetaData/wif.axd ?ReturnUrl= https://hrcentral/mainmodule/expense/index

Web.configリダイレクト用に以下のように設定しています

 <authentication mode="Forms">
      <forms loginUrl="~/FederationMetadata/WIF.axd" name="smartForms" />
    </authentication>

ステップ 3: WIF.axd httphandler 内でセッションを設定し、クエリ文字列から URL を返す

HttpContext.Current.Session["ReturnUrl"]="https://hrcentral/mainmodule/expense/index";

セッションを設定すると、ADFS にリダイレクトされます

ステップ 4 ADFS 認証と POST リクエスト https://hrcentral/federationMetaData/wif.axd は、同じ WIF ハンドラ内で送信されます。リクエストが POST であるかどうかを確認する条件があります。このリクエストは POST であるため、ReturnUrl を含む以前に保存されたセッションは、リダイレクトしてアプリケーションに到達しようとします。

問題は、手順 3 で設定されたセッション (HttpContext.Current.Session["ReturnUrl"]=ReturnUrl) が、wif.axd で ADFS からリダイレクトされた後にアクセスできないことです。一般に、アプリケーションで設定されているすべてのセッションは、ADFS からのリダイレクト後に失われます。

その後、認証が行われ、https://hrcentral/mainmodule/expense/indexにリダイレクトされます

セッションの設定

4

0 に答える 0