- PR -

セッション切れ後の新規作成の判定について

投稿者投稿内容
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2003-07-25 16:56
現在Windows2003 + VisualStudio2003でWebアプリケーションを
作っているのですが、アプリを起動しFormを表示します。

その後、セッションタイム又はAbandon()にてセッションが切断
された後でもう一度”更新”等で要求を行った時にPage_Load()の中で
セッションが、新規に作成されたものか、セッション切れの後に
もう一度作成されたのかを知りたいと思っています。

要はセッション切れの後で、もう一度要求を行った場合に
”セッションが切れています”という画面を表示したいのですが
これはどのように行えば良いのでしょうか?

何卒宜しくお願いします
NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-07-25 17:04
簡単なのは初回起動時にセッションに値を入れておいて
それがあるかを見るのが速そうですね

私はこれでやっていますが.netだともっと効率がいいのがないかと
調べたらありました。

IsNewSession
現在の要求でセッションが作成された場合は true 。それ以外の場合は false 。

これでいいですね、知らなかった
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2003-07-25 22:59
レスありがとうございます

引用:

IsNewSession
現在の要求でセッションが作成された場合は true 。それ以外の場合は false 。



私もこれは使ってみたのですが、ただ最初の新規作成時にも
IsNewSessionがtrueになる為、要求が最初のものかセッションが切れた
後の一回目の要求なのかが分からなくて困っております。

なにか上手い方法はないものでしょうか?

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2003-07-26 00:33
引用:

私もこれは使ってみたのですが、ただ最初の新規作成時にも
IsNewSessionがtrueになる為、要求が最初のものかセッションが切れた
後の一回目の要求なのかが分からなくて困っております。

なにか上手い方法はないものでしょうか?


多分ないと思います。
セッションがタイムアウトした後かどうかを調べるには、前のセッション情報にアクセスする必要があるわけで、何らかの情報が残っていないと無理です。
# 通常タイムアウト時にはセッションの情報を破棄するわけで…

まあ、セッション情報をDBに持っている場合などは、履歴をたどるとか出来るような構造は考えられますが、ASP.NETのセッションでそんなことが出来るようになっているのかは知りません。
単純に考えれば、出来るようにはなっていないんじゃないかと思います。
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2003-07-26 01:02
なちゃさんレスありがとうございます。

やはり無理ですか・・うすうすそうじゃないかと
感じてはいましたが・・

それだと仮にショッピングサイトで商品を
ショッピングカーとに入れ、個人情報を入力
(クレジットカード番号など)
する画面でセッションが切れた場合に、
送信ボタンを押したら、セッション切れエラーの
画面をだす
という処理をするとしたら、どういった処理を
記述するべきでしょうか?

あすかぜ
常連さん
会議室デビュー日: 2003/04/22
投稿数: 21
投稿日時: 2003-07-26 04:15
トップページと問題となっているページが違うフォームなら、
セッションがつながっているべきフォームのPage_Loadで
IsNewSessionを調べればいいような気がするんですが・・・。
どうなんでしょう。
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2003-07-28 11:38
あすかぜさんレスありがとうございます

引用:

あすかぜさんの書き込み (2003-07-26 04:15) より:
トップページと問題となっているページが違うフォームなら、
セッションがつながっているべきフォームのPage_Loadで
IsNewSessionを調べればいいような気がするんですが・・・。
どうなんでしょう。



ちょっとやってみたのですが、ASP.NETの場合
遷移元でセッションが切れた後で、遷移先へ画面遷移させるべく
ポストバックすると自動的にセッションが生成されているようなの
ですが、この場合はどうやってもIsNewSessionがtrueになって
しまいます。

自動的にセッションの生成を出来ないようにする方法ってあります
でしょうか?
NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-07-29 09:34
自動的にセッションの生成を出来ないようにする方法はわからないのですが

セッション切れの判定の流れを確認・・・

・ログイン セッションに値を詰める
・業務   ログインで詰めた値があるかを見てなければセッションエラー
・業務のボタンクリック ログインで詰めた値があるかを見てなければセッションエラー

という風にやるとできているんですけどねぇ

画面間の遷移はどうやっているのでしょうか?
ボタンを押された時にセッションがなかったら遷移先の画面を呼ばずにセッションのエラーに
するだけではダメでしょうか?

私のやった業務ではこういう流れで画面を開いて登録時にセッションが切れていたらセッション切れと表示していますが、役に立ちませんか?


[ メッセージ編集済み 編集者: NYRL 編集日時 2003-07-29 09:34 ]

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