- - PR -
Sessionの再作成
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-25 19:00
インプロセスモードでSession("a")を作成しそのままの状態でタイムアウトした時に、Session_Endイベントが起こり自動的にSessionが終了していますが、
そのSession("a")をSession_Endイベント内で、例えばSession("b")に代入するなどしてタイムアウト後もSession("a")の中身を保持するということは可能なのでしょうか? Session_Endイベント内では、すでにSession("a")は消滅しているというのは確認しており無理だとは思うのですが・・。 | ||||
|
投稿日時: 2005-01-25 19:18
結論だけ申し上げると無理です。
素直にタイムアウト値を多くとりましょう。 また、セッションの種類によってはSEssion_Endが発生しません。 そのあたりは過去ログが詳しいでしょう。 _________________ 「伝える」とは「人に云う」と書く。 http://d.hatena.ne.jp/NAL-6295/ | ||||
|
投稿日時: 2005-01-25 19:44
「やりたいこと」を明確にして質問してほしいです。
要求を満たすかは分かりませんが、Cookieはどうでしょう。 | ||||
|
投稿日時: 2005-01-25 22:28
>wwwさん つまり、 「ユーザが長い間ブラウザを開けっ放しで放っておいた後、何らかの操作をしようとするとセッション変数がクリアされているためプログラムがエラーになる。そのエラーを出さないようにするためにはセッション終了イベントでほかのところに移し替えれば、と思ったのですが」 というようなことです。この、やりたいと思った動機が明確であれば、代替案も提供できます。 | ||||
|
投稿日時: 2005-01-25 23:10
どっかで聞いたような話ですよね。 非永続的な記憶領域であるSessionを永続的な記憶領域として使うために裏技的な処置を講じるよりも、最初から永続的な記憶領域を使うようにしましょう。Cokkeiもそのひとつだし、データベースにユーザー毎の情報を保持しておいたって構わない。 | ||||
|
投稿日時: 2005-01-26 06:48
セッションがタイムアウトしたときに、セッションステートを復元して処理を続行 させるのではなく、タイムアウトした旨をユーザーに通知してログイン画面に 戻るなどのアプローチがよいのでは。 セッションのタイムアウトを考慮してないWebアプリが結構あるようです。 設計時にタイムアウト時の仕様を明確にしないと後で問題が発生します。 タイムアウトを検出する方法は下記URLを参照してください。 http://aspalliance.com/articleViewer.aspx?aId=520&pId=1 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
1