- - PR -
ASP.NETのステートとは何?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-12 07:42
先日、Tech-Ed2004に参加して
「N階層アプリケーションにおけるステート管理」のセッションを受講しました・・・ がよく理解できませんでした。 どなたか、ASP.NETのステートとは何か説明していただけませんか。 それから、 ・アプリケーションステート(Application State) ・セッションステート(Session State) ・ビューステート(View State) の違いについても説明して頂けると助かります。 よろしくお願いします。 補足: 単純に、ステートとはアプリケーションのデータと理解してよいのでしょうか?アプリケーションステート、セッションステート、ビューステートは単純にステートのスコープの違いということでしょうか。 | ||||
|
投稿日時: 2004-09-12 12:54
Webアプリケーションで管理しなければいけないのは大きく分けて2つです
1.個々のユーザごとに管理しなければいけない情報 2.すべてのユーザにまたがって、アプリケーション全体で共有しなければいけない情報 1はブラウザ側(クライアント)に保存するViewStateと サーバ側に保存するSessionStateがあり 2はApplicationStateにあたります。 上記以外にもクッキーやクエリー文字列、サーバーサイドのStatic変数などありますが ASP.NETの状態管理の基本は ViewState SessionState ApplicationState らしいです。 | ||||
|
投稿日時: 2004-09-12 21:51
burton999さんありがとうございました。
ステートを理解するのに、ショッピングカートを例にすると分かり易いと思うのですが。たとえば、ショッピングカートをセッションステートに保存したとします。ところが、クッキーレス(Cookieless=True)の状態で、ハイパーリンクに絶対アドレスを指定すると、同じサイトでも新規のセッションが作成されて、セッションステートが維持できなくなります。(つまり、セッションIDが異なるためにセッションステートが対応できなくなる) モバイル対応のサイトを構築するとき(クッキーレスが前提)は、ハイパーリンクに相対アドレスを指定すると正常に動作しないことがあると聞いたことがあります。ところが、絶対アドレスを指定するとセッションステートが維持できなくなる不都合が発生します。 この場合、ステートをどのように管理したらよいのでしょうか。どなたか、ご存知の方教えてください。 | ||||
|
投稿日時: 2004-09-12 22:57
http://www.atmarkit.co.jp/fdotnet/dotnettips/189aspckless/aspckless.html
もうちょっと自分で調べるようにしたほうが今後のためかもしれません。 _________________ 相手がうまく理解できない場合、問題は相手にあるのではなく自分の伝え方にある。 [ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-09-12 22:59 ] | ||||
|
投稿日時: 2004-09-13 08:22
説明不足で申し訳ありません。ASP.NETでクッキーレスにする方法は理解しています。もう少し具体的に説明すると、クッキーレスセッションの環境で、以下の2種類のリンクを作成します。 (1) <a href="mypage.aspx">Click Me</a> (2) <a href="/mypage.aspx">Click Me</a> (1)のケースは、同じセッションIDが継承されてセッションステートが保持されます。ところが、(2)のケースでは、新たなセッションIDが作成されるためセッションステートが保持できません。URLをすべて相対アドレスで記述できれば問題ないのですが、絶対アドレスで記述しないといけないケースでは、セッションステートを維持できなくなります。 この問題を解決する方法がないか悩んでいます。 | ||||
|
投稿日時: 2004-09-13 10:14
クッキーレスセッションですかね。
セキュリティー的に好ましくなさそうですが(((( ;゚д゚)))アワワワワ http://www.atmarkit.co.jp/fdotnet/dotnettips/189aspckless/aspckless.html |
1