いつもお世話になっております。
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名を指定)
操作手順:
- ログイン画面でログイン
→ 一覧画面に遷移 - 一覧画面で詳細表示ボタンクリック
→window.openで詳細画面を表示
以降、この詳細画面のウィンドウは閉じない - サーバ側のIISを再起動する。
→InProcのためセッション情報がクリアされる - 再度ログイン画面でログイン
→ 一覧画面に遷移
新しいセッションIDが払い出される - 一覧画面で詳細表示ボタンクリック
→window.openで詳細画面を表示
→手順2で開いたウィンドウに対して、詳細画面を開こうとする
→サーバへのリクエストにおいて、手順2の時のセッションIDが送信される
問題点:
手順5でウィンドウを開いた時、手順2の時のセッションIDが
サーバ側に送信される。
サーバ側は手順3で再起動しているため、手順2のセッションIDを
管理しておらず、新規セッションIDだとみなされる。
(Session.IsNewSession==true)
新規セッションだとログイン画面を表示してしまう。
質問:
Internet Explorerでモードレスウィンドウを開くと、セッションID
(Cookie)が保持されるのですが、ウィンドウを閉じない限り
保持し続けられるようです。
このモードレスウィンドウのセッションIDを更新する方法は無いでしょうか。
その他、この問題を解決する良い方法があれば、ご教授いただけないでしょうか。
現在考えているのは、ログイン後の初回の一覧画面表示時に、
モードレスウィンドウに対して「自画面を閉じる」スクリプトを埋め込んだ
HTMLを呼び出すことです。
回答2件
あなたの回答
tips
プレビュー