dポイントプレゼントキャンペーン実施中!

セッションを破棄する『Session.Abandon』を実行すると、セッション変数が全部破棄されます。
全部は破棄したくないのでいろいろパターンを考えてみたのですが
うまくいきません。

(1)破棄したくないものを一旦ワークへ退避し、Session.Abandon実施後に、再びセッションへ設定する。
→どうも、一度破棄してしまうと再びセッションへ設定が出来ないようで、処理ができません

(2)使用したセッション変数すべて(破棄したくないものを除く)に ""(空文字列)をセットする。
→これだと一応はOKなんですが、他への流用がきかないため、できればあまりやりたくないです^^;
(セッション変数自体も破棄される訳ではないのであまり使いたくないというのもありますが・・・)


最悪は上記(2)で対応できるのですが、他に何か良い対応策があれば教えていただきたいです。
お願いします。。。

A 回答 (1件)

こんにちは。



(1)について
Abandon メソッドを呼び出すと、実際に削除されるのは現在のページのスクリプト コマンドの処理がすべて完了した時点です。
つまり、Abandon を呼び出したページ内であれば Session オブジェクト内の変数にはまだアクセスすることができますが、その後の Web ページではアクセスできなくなります。

Application変数に退避したら、いかがですか?

参考URL:http://www.microsoft.com/japan/developer/library …
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

現在作成中のサイトで確認してみたところ、
確かに、Abandonを呼び出したページ内では
セッションに値が残っていました。
更に、別のページへ飛んだ時点でなくなってしまうと
いうことも確認できました。

また、アドバイス頂いたのに恐縮ですが、
今回削除したいセッション変数というものが、
サイトを覗いた方が入力した個人情報に当たる部分なので
Application変数にはちょっと入れられないな・・・という
感じです。

ということで、Abandonによるセッションのクリアは
言語の仕様、システム的な仕様からも無理がある
ようなので、やめて(2)の方法で行こうと思います。

ありがとうございました。

お礼日時:2002/10/03 21:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!