- - PR -
ASP.NET フレームセット使用時のセッション
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-15 18:37
ASP.NET Webフォームアプリケーションにおいて,フレームセットを使用すると,フレーム分の数のセッションが作成されます。(Session_Start内で確認したところ,SessionIDがそれぞれ割り当てられます)
フレームのページ設定は,"ページ相対","ルート相対","絶対位置"のどれを指定しても,別セッションとなります。(例:<frame name="main" src="Form1.aspx">) ("絶対位置"で指定した場合に,セッションが別になる現象は想像できるのですが) フレーム内で1セッションとすることはできないのでしょうか? それが不可能なら,Session_Startで,フレーム内のページ特定ができないのでしょうか? ご教授お願いいたします。 _________________ | ||||
|
投稿日時: 2005-02-15 18:48
そのFrameSetの前に、ASPXのページを置けばできますよ。
_________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2005-02-15 20:24
それかそのFrameSetのページ自身の拡張子を.aspxにしてしまうとか。
| ||||
|
投稿日時: 2005-02-16 09:12
両氏,ご返答ありがとうございました。
確かに,なぜ,HTMにしたのか・・・と思います。 すっきり解決しました。 | ||||
|
投稿日時: 2005-02-16 16:39
補足 IEのインスタンスはどのフレームも同じなのでセッション自体は1つになります。 フレーム毎に違うSessionIDになった(ように見えた)のは、フレーム内のページを表示するとき、セッションを新規作成するか既存のものがあるかを判断するのに使うSessionIDが、Cookie内になかったから。 フレームを個別にリロードする実験では、一番最後に表示された(ように見える)IDが有効になっていました。 _________________ たつごろー http://www.codeseek.net MCSE MCSD.NET、MCDBA、MCSA、MCAD Oracle Master Platinum 9i、Oracle Master Linux+ [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-02-16 17:14 ] | ||||
|
投稿日時: 2006-02-01 21:44
ユクヒロです。
>セッションを新規作成するか既存のものがあるかを判断するのに使うSessionIDがCookie内になかったから。 上記仕様を応用すると、以下のようなことも可能になりますでしょうか? 親画面からWindows.Open()で子画面を開く仕様のとき、子画面は親画面と別セッションIDにしたい。 具体的な使用例では、メニューaspxから業務画面を開く(別ウィンドウ)のですが、 セッションIDをメニュー画面と別にしたいというものです。メニューから複数の業務画面(別ウィンドウ)を開くと、複数の業務画面同士が同じセッションIDとなることを避けたいのです。メニューと業務画面はすべて同じアプリケーションプールであり、同じWebアプリケーションフォルダに属しています。 | ||||
|
投稿日時: 2006-02-01 22:49
もともと独立したクッキーを持てるって話じゃなくて、 持っていないからばらばらにそれぞれ作成されたというだけの話なので、 画面ごとに独立して維持するのは無理です。 ※消したらみんな消えるし、最初の話のもばらばらにそれぞれ 作成されたってだけで、最終的に残るのはひとつでしょう。 | ||||
|
投稿日時: 2006-02-02 20:06
ユクヒロです。
>画面ごとに独立して維持するのは無理です。 無理ですか。。。 では、これではどうでしょうか? メニュー画面から業務画面を別ウィンドウで起動するとき、Windows.Open()などを使用せずに、スクリプトを駆使して、IEの別インスタンスを起動する。 インスタンスが分かれるため、確実にセッションは別々になるものと推測できますが、いかがなものでしょうか? |