Webページを表示するために、IEを普通の方法で起動し表示した場合と(ファイルを表示する)エクスプローラのアドレスバーにURLを入力して起動した場合の違いは何でしょうか?

IIS5.0+ASPで動いているWebアプリケーションがあるのですが、エクスプローラで開いた場合、ポップアップしたウィンドウにsessionが引き継がれずに困っています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tomo_k No.1

回答回数426ベストアンサー獲得回数26

ポイント25pt

http://www.hatena.ne.jp/1134557325#

人力検索はてな - Webページを表示するために、IEを普通の方法で起動し表示した場合と(ファイルを表示する)エクスプローラのアドレスバーにURLを入力して起動した場合の違いは何でしょうか..

IEではセッションはIEのプロセスごとに管理されています。

たとえば、セッションを使っているWebアプリケーションにおいて1台のマシーンで2つのIEを起動し一つは画面遷移してとあるURLにたどりつき、その後もう一つのIEでURLを直接入力したのではセッションは引き継がれません。


ポップアップした場合は同一プロセスでIEが動いているはずなのでセッションは引き継がれても良さそうですけど……。セッションのスコープに問題があることは考えられますけど。

id:kusamakura

回答文の「同一プロセス」の単語にピンと来て、タスクマネージャでプロセスの変化を見てみたら、エクスプローラの場合は親ウィンドウがexplorer.exeで、ポップアップを表示すると別プロセスのIEXPLORE.EXEを起動してる様です。これだよ(笑)。気付かせてくれてありがとうございました。

で、なにかうまい方法は有りませんか?

2005/12/14 22:11:59
id:tomo_k No.2

回答回数426ベストアンサー獲得回数26

ポイント25pt

別プロセスで動いていましたか。


さて、代替の方法ですがどのようなものを作っているか皆目見当がつかないのではずしていたらごめんなさい。


一つの方法としてクエリーストリングとして情報を与えてあげる。いわゆる、GETコマンドですね。最低、キーとなっている情報を与えることができればいいでしょう。

オブジェクトを渡す必要があるのならお手上げですが。

方法論はわかりませんがセッションIDを渡してあげてセッションを横取りしてしまう方法。ただし、第三者によるセッションハイジャックの懸念がありセキュリティ上大きな問題ありです。


どうしても、セッションを引き継がなければならない致命的な理由がなければGETコマンドで逃げることができるかと思います。その場合でもURL文字列にいろいろと情報が載ってくることになります。


尚、2回までしか回答ができないようですのでこの回答のコメントにより気付いたことがあれば自分の日記にこの質問にトラックバックする形で書きます。

id:kusamakura

やっぱり、そういう手順ですかね。

sessionオブジェクトでは大したデータ扱ってなかったので、applicationオブジェクトと自前で管理したcookie使って自力でセッション管理するように変更しました。

2005/12/15 21:31:56

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません