- PR -

セッションを切断(破棄)したい

1
投稿者投稿内容
hideto
会議室デビュー日: 2005/06/16
投稿数: 5
投稿日時: 2005-06-21 19:07
いつもお世話になっております。
早速質問させてください。

現在、ログイン画面よりSession.Add("OK", "1")
などのようにログイン認証に通った場合はSessionに情報を追記しています。

メニュー画面よりログアウトした時にlogout.aspxにて以下のプログラムを
記述してます。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Session.Abandon()
Response.Redirect(AppSettings("URL_LOGIN"))
End Sub

これで、ログイン画面には遷移しますが、遷移後ブラウザの「戻る」ボタンを
押下しても、メニュー画面が表示されてしまいます。

もちろん、メニュー画面ではセッションの中身をチェックし
なければログイン画面に遷移するようにしています。

セッションの破棄の仕方が悪いのでしょうか?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-06-21 19:48
引用:

hidetoさんの書き込み (2005-06-21 19:07) より:
これで、ログイン画面には遷移しますが、遷移後ブラウザの「戻る」ボタンを
押下しても、メニュー画面が表示されてしまいます。


サーバーはブラウザの「戻る」ボタンが押下されたことを認知できますか?
hideto
会議室デビュー日: 2005/06/16
投稿数: 5
投稿日時: 2005-06-21 20:02
NAL-6295様レスありがとうございます。

サーバー側では判断できません。

PHPでならやりたい事は実現可能なんです。

<logout.php>
// セッション開始
session_start();

// セッション破棄
session_destroy();

// ログイン画面へリダイレクト
header("Location: MnuLogin.php");

これでブラウザの「戻る」ボタンをクリックしても
ちゃんとログイン画面へ遷移します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-06-21 21:13
 サーバーが、クライアントに保存されているキャッシュを削除することはできますか?


 しかし、クライアントにキャッシュさせないようにすることはできます。


 戻るボタンって、結局クライアントが自分のキャッシュを表示しているんですよ。おそらく、「できている」んじゃなくて、クライアントがphpというか、CGIのページはキャッシュしないようにしているから、できているように"見えている"んだと思います。

[ メッセージ編集済み 編集者: Jitta 編集日時 2005-06-21 21:16 ]
hideto
会議室デビュー日: 2005/06/16
投稿数: 5
投稿日時: 2005-06-21 23:16
Jitta様
レスありがとうございます。

確かにおっしゃる通りですね。
PHPではキャッシュさせないような設定にしております。

同じような事でASPでも
Response.Expires = 0
Response.AddHeader "Pragma", "No-Cache"
Response.AddHeader "Cache-Control", "No-Cache"

と記述していますが、キャッシュされているようです。
皆様はどのようにしてキャッシュをさせないようにしていますか?

また、通常。。。というか、ログイン、ログアウトの処理で
メジャーな方法ってどのようなものがあるのでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-06-22 21:33
 微妙に、痛い勘違いをしていますね。いや、最初に読んだときに気づかなかった私も私ですが。

> セッションの破棄の仕方が悪いのでしょうか?
 マニュアルをもう一度読み直しましょう。ん?

> 現在、ログイン画面よりSession.Add("OK", "1")
> などのようにログイン認証に通った場合はSessionに情報を追記しています。
 むむ?どういう認証を使用している/どうやって認証をさせているのか、教えてください。

 とはいえ、私が次に出てこられるのは翌日ですので、参考URLを
連載  プログラミングASP.NET 17回以降参照
_________________
1

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