- 締切済み
window.openした孫画面でSessionが引き継がれないことがあるについて
[Win2000professional SP4][SQLServer][IIS-5.0][ASP] でwebアプリケーションを開発しています(ASP.NETではありません) 下記について原因、対処方法がみつからないため 何かご教授いただきたく投稿しました。 手順 1、IE6SP1を起動し画面(A)を表示 1、IE6SP1を起動し画面(B)を表示 2、画面(B)からwindow.openで画面(C)を表示 3、画面(C)からwindow.openで画面(D)を表示する 画面(A)は、Webアプリケーションとは別画面 画面(B)、画面(C)、画面(D)はWebアプリケーションの画面 すると画面(D)は、画面(C)のSessionIDとは異なるIDが割り振られています。 画面(B)から画面(C)へは、正しくSessionIDが引き継がれています。 この場合、画面(A)を閉じれば画面(D)は画面(C)とSessionIDが引き継がれます。 この場合、、画面(D)と画面(C)でSessionIDを正しく引き継げない原因は何でしょうか? 何かご存知な方は教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tamaCo
- ベストアンサー率66% (47/71)
MSのサイトを漁りましたが見当たらなかったのでこちらを。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22818&forum=7&7 この例ではASP.Netですが、複数ブラウザとIISという事では説明に使える事例なのではないかと思います。 私の場合、経験則で知っているだけなのでエンドユーザ様に説明するのは大変そうですね。 #実際、お客さん側の受入れテスト中にこの事象が起きてバクフィックスに大変な思いをした思い出が蘇って来ました…。 #それ以来Session変数は極力使わないコーディングになりました…。(使ってもすぐ破棄する)
- tamaCo
- ベストアンサー率66% (47/71)
ブラウザを複数立ち上げているとSession変数は正しく引き継がれなかったような気がします。 どうしても複数のブラウザを立ち上げる必要があるのであれば、hidden+POSTとかで持ちまわるしかないのではないでしょうか。 エンドユーザさんはこちらが想像もしなかったようなオペレーションをしてくる事もあるので、あやふやなものよりも確実にデータを引き継げる方法を取った方が良策だと思います。
補足
ブラウザを複数立ち上げているとSession変数は正しく引き継がれないのは、どこかに記述があったら教えていただけないでしょうか? エンドユーザさんに非常に説得力ある説明になりますので。
お礼
tamaCoさんありがとうございます。 これから対応考えます。 #昔は、かなり厳しい現場ばかりだったので、今でもその恐怖感から #100%正確な情報を求めてしまいます。今の現場は、そんなに厳しく #なさそう(?)なので少し安心してます。