- 締切済み
F5でリロードしないとセッションがきれない
ログイン画面を作成しており、ログイン画面を表示した時点でセッションを値なしにしています。 各処理画面にはglobal.asaにおいてセッション値の有無を確認し値なしの場合にはログイン画面にリダイレクトするようにしています。 またメニューバーにログアウトのハイパーリンクを設置しログイン画面を呼び出しています。 通常の処理ならば (1)ログイン画面→(2)各処理画面→(3)ログアウトといった感じで最終的にセッションを切り、(2)各処理画面に移動しようとしてもログインしない限りは処理画面に移動できません。 ブラウザをたちあげてから(1)(2)(3)の処理を動かす分には問題ありません。しかし、(3)ログアウト後に再度ログインしごちょごちょした後、(3)ログアウトしても(2)各処理画面に移動できてしまいます。これはセッションを切るロジックを通っていないようです。条件で通っていないとかではなく、何故か通っていないのです。何故でしょう?? ためしに既に画面を表示している状態で適当な文字をログイン画面のロジック内に記入し、ログアウトのハイパーリンクを押しても表示されません。F5キーを押した時のみ表示されます。※Ctrl+N で新規ウィンドウを表示してもでません。 よろしくお願いします。 最悪、解決できない場合はハイパーリンクを押した時にF5キーを押したようなイベントを使用したいのですが、もしこういう処理があるのなら教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
Wizard_Zeroと申します。 ログアウトページがブラウザのキャッシュから読み込まれているせいではないでしょうか? ログアウトページに有効期限設けてみてください。 ASPの場合: Response.Expires = 0 HTMLの場合: <HEAD>ブロック内に以下を追加 <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
補足
普通はそうですよね~。 しかし。。。Response.Expires = 0 でキャッシュは既に無効にしてあります。。。