- - PR -
ASP.NET フレームセット使用時のセッション
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-03 14:27
別アプリにするとか。
| ||||
|
投稿日時: 2006-02-03 20:27
ユクヒロです。
>別アプリにするとか。 これ、どういう意味でしょうか? まさか、アプリケーションプールを分離する。あるいは、WEBアプリケーションフォルダを分離する、との意味ですか? 実装からするとありえないですよね、それは。業務画面A、業務画面Bを分離するなんて。。。 違う意味であれば、どういう事なのか、もう少し具体的に説明して頂ければ助かります。 | ||||
|
投稿日時: 2006-02-04 09:12
ASP.NETで作成したアプリケーションのセッションは、プロジェクト毎に分離されています。メニューと業務処理を別のプロジェクトに分離し、それを一つのフレーム内に表示すれば、事実上メニューと業務処理は別のセッションで動作する事になります。子画面を別プロジェクトにすれば、子と親は別のセッションに属することになります。もちろんSesssionを使ったデータの共有は出来ないので、その部分は独自に作りこむ必要があるわけですが。 | ||||
|
投稿日時: 2006-02-06 22:03
甕星さん、こんばんは。ユクヒロです。
甕星さんのご指摘事項は、十分に承知しております。 私が困っていることは、子画面同士が同じセッションIDとなってしまうことです。 構成的には以下の通りです。 Aプロジェクト−−−メニュー画面 Bプロジェクト−−−サブシステムのα業務画面、β業務画面 メニューから、α業務画面、β業務画面をそれぞれ別ウィンドウでオープンするのですが α業務画面、β業務画面のセッションIDが同一になってしまうことへの回避方法を探しております。私個人的には、α業務画面、β業務画面それぞれのIEプロセスを別々にすることしか思いつきません。他にもっと良い方法はないものかと思い質問をさせて頂いております。 | ||||
|
投稿日時: 2006-02-08 01:14
同じセッションになってはまずい構造なのであれば別アプリケーションにすべきでしょうし、 同じWebアプリケーションにするのなら、セッションは同一でも困らないつくりにしておくべきでしょう。 で、別インスタンスのIEを立ち上げるってのは、Webアプリケーションレベルではいい方法とはいえないでしょう。 ※どうやってやるつもりなのか、てのもあります。 | ||||
|
投稿日時: 2006-02-08 21:32
なちゃさん、こんばんは。ユクヒロです。 つまりは、設計で回避出来る!ということですね? 同じセッションID=同じセッションメモリ空間を共有するので 同一のセッションキーを各業務画面で使用しない設計にすることが望ましいということですね。でも、同じ意味合いのセッションキーを重複しない一意なキー命名規則を検討しないといけないですね。 例えば画面IDを格納するセッションキーがあった場合 □α画面では、Session("GuiIDxxx") □β画面では、Session("GuiIDxxx") 例として、「xxx」部に、重複しない一意なキーとなる命名規則を考える必要があります。皆さんは、どのように設計してるんだろうか? | ||||
|
投稿日時: 2006-02-08 21:54
うちでは各ページでなんというセッション変数を使っているか
申告させてかぶらないように管理しています。 そもそも、各ページでそんなに大量にSession変数って使わない (使わないほうが良い)ですよね HashTableをセッション変数に格納して セッション変数の名前をそのページとかにすればまずかぶら無そうだけど 良いか悪いかはわからないけど。。。
| ||||
|
投稿日時: 2006-02-09 20:40
ユクヒロです。
>HashTableをセッション変数に格納して この方法は、私が記述した例よりも何倍もすぐれています。 少なくても私はそう思います。 もっと良い設計があるか、検討してみたいと思います。 ありがとうございました。 |