new.somecompany.com と legacy.somecompany.com という 2 つの ASP.NET Web サイトがあります。
「新規」は、Windows 認証を使用するイントラネット アプリケーションです。「レガシー」はインターネットとイントラネットの両方です。フォーム認証を使用します。
私の上司は、「新しい」Web サイト内から、リンクをクリックして、「レガシー」サイトの既にログインしている Web ページへのブラウザ ウィンドウを開くことができるようにしたいと考えています。(彼は、レガシー サイトを変更せずにこれを行うことを望んでいます。)
Chrome (バージョン 39.0.2171.95 m) と Firefox (バージョン 33.1.1) の両方で動作するソリューションがありますが、Internet Explorer (バージョン 11.0.9600.17501) では動作しません。大まかな解決策は次のとおりです。
- 「新規」のコントローラーは、HttpWebRequest を使用して、保存された資格情報を使用して「レガシー」にログインします。
- コントローラーは、「レガシー」応答から「ASP.Net_SessionId」Cookie を取得し、それを使用してブラウザーでドメイン「.somecompany.com」の「ASP.Net_SessionId」Cookie を設定します。
- ブラウザから、 に移動し
https://legacy.somecompany.com/somepage.aspx
ます。
Chrome および Firefox では、https://legacy.somecompany.com/somepage.aspx
ログインに使用された保存済み資格情報に応じて が表示されます。IE11ではログインページが表示されます。
Microsoft の Message Analyzer ツールを使用して、何がやり取りされているかを確認しました。Chrome では、ASP.Net_SessionId Cookie が somepage.aspx の HTTP 要求で送信されていることがわかります。IE 11 では、Cookie が送信されず、ログイン ページへのリダイレクトが応答として返されます。
これを IE 11 で動作させるためにできることはありますか?