- PR -

ASP.NET フレームセット使用時のセッション

投稿者投稿内容
yui
会議室デビュー日: 2005/02/15
投稿数: 2
投稿日時: 2005-02-15 18:37
ASP.NET Webフォームアプリケーションにおいて,フレームセットを使用すると,フレーム分の数のセッションが作成されます。(Session_Start内で確認したところ,SessionIDがそれぞれ割り当てられます)

フレームのページ設定は,"ページ相対","ルート相対","絶対位置"のどれを指定しても,別セッションとなります。(例:<frame name="main" src="Form1.aspx">)
("絶対位置"で指定した場合に,セッションが別になる現象は想像できるのですが)

フレーム内で1セッションとすることはできないのでしょうか?
それが不可能なら,Session_Startで,フレーム内のページ特定ができないのでしょうか?

ご教授お願いいたします。
_________________
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-02-15 18:48
そのFrameSetの前に、ASPXのページを置けばできますよ。

_________________
たつごろー
codeseek
こみゅぷらす
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-02-15 20:24
それかそのFrameSetのページ自身の拡張子を.aspxにしてしまうとか。
yui
会議室デビュー日: 2005/02/15
投稿数: 2
投稿日時: 2005-02-16 09:12
両氏,ご返答ありがとうございました。

確かに,なぜ,HTMにしたのか・・・と思います。
すっきり解決しました。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-02-16 16:39
引用:

フレーム内で1セッションとすることはできないのでしょうか?


補足

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 ]
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-01 21:44
ユクヒロです。

>セッションを新規作成するか既存のものがあるかを判断するのに使うSessionIDがCookie内になかったから。

上記仕様を応用すると、以下のようなことも可能になりますでしょうか?
親画面からWindows.Open()で子画面を開く仕様のとき、子画面は親画面と別セッションIDにしたい。
具体的な使用例では、メニューaspxから業務画面を開く(別ウィンドウ)のですが、
セッションIDをメニュー画面と別にしたいというものです。メニューから複数の業務画面(別ウィンドウ)を開くと、複数の業務画面同士が同じセッションIDとなることを避けたいのです。メニューと業務画面はすべて同じアプリケーションプールであり、同じWebアプリケーションフォルダに属しています。


なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-02-01 22:49
引用:

b-maxさんの書き込み (2006-02-01 21:44) より:
ユクヒロです。

>セッションを新規作成するか既存のものがあるかを判断するのに使うSessionIDがCookie内になかったから。

上記仕様を応用すると、以下のようなことも可能になりますでしょうか?
親画面からWindows.Open()で子画面を開く仕様のとき、子画面は親画面と別セッションIDにしたい。


もともと独立したクッキーを持てるって話じゃなくて、
持っていないからばらばらにそれぞれ作成されたというだけの話なので、
画面ごとに独立して維持するのは無理です。

※消したらみんな消えるし、最初の話のもばらばらにそれぞれ
 作成されたってだけで、最終的に残るのはひとつでしょう。
b-max
常連さん
会議室デビュー日: 2003/02/05
投稿数: 26
投稿日時: 2006-02-02 20:06
ユクヒロです。

>画面ごとに独立して維持するのは無理です。

無理ですか。。。
では、これではどうでしょうか?
メニュー画面から業務画面を別ウィンドウで起動するとき、Windows.Open()などを使用せずに、スクリプトを駆使して、IEの別インスタンスを起動する。
インスタンスが分かれるため、確実にセッションは別々になるものと推測できますが、いかがなものでしょうか?

スキルアップ/キャリアアップ(JOB@IT)