質問: いつもお世話になっております。 Internet Explorerで、モードレスウィンドウを開いている時の セッションの保持方法についてご教授いただきたいです。 以下のような状況です。 環境: --- ブラウザ:Internet Explorer 11 サーバOS:windows Server 2012 APサーバ:IIS 言語:C# (.NET Framework 4.5.2 ASPX) セッション:InProcで保持する javascript:jQuery 1.11 社内イントラネット 画面構成(関連部分のみ抜粋): --------------- ログイン画面 ↓ 一覧画面に画面遷移 ↓ window.openで詳細画面を表示(window名を指定) 操作手順: ----- 1. ログイン画面でログイン → 一覧画面に遷移 2. 一覧画面で詳細表示ボタンクリック →window.openで詳細画面を表示 以降、この詳細画面のウィンドウは閉じない 3. サーバ側のIISを再起動する。 →InProcのためセッション情報がクリアされる 4. 再度ログイン画面でログイン → 一覧画面に遷移 新しいセッションIDが払い出される 5. 一覧画面で詳細表示ボタンクリック →window.openで詳細画面を表示 →手順2で開いたウィンドウに対して、詳細画面を開こうとする →サーバへのリクエストにおいて、手順2の時のセッションIDが送信される 問題点: ---- 手順5でウィンドウを開いた時、手順2の時のセッションIDが サーバ側に送信される。 サーバ側は手順3で再起動しているため、手順2のセッションIDを 管理しておらず、新規セッションIDだとみなされる。 (Session.IsNewSession==true) 新規セッションだとログイン画面を表示してしまう。 質問: --- Internet Explorerでモードレスウィンドウを開くと、セッションID (Cookie)が保持されるのですが、ウィンドウを閉じない限り 保持し続けられるようです。 このモードレスウィンドウのセッションIDを更新する方法は無いでしょうか。 その他、この問題を解決する良い方法があれば、ご教授いただけないでしょうか。 現在考えているのは、ログイン後の初回の一覧画面表示時に、 モードレスウィンドウに対して「自画面を閉じる」スクリプトを埋め込んだ HTMLを呼び出すことです。
回答: Sessionの変更ができないとのことだったため、 当初予定通りログイン時にウィンドウを閉じる方法で対応することとなりました。