- PR -

プロジェクト以外のURLへジャンプした時のセッション切断

1
投稿者投稿内容
aiai
会議室デビュー日: 2003/08/18
投稿数: 16
投稿日時: 2003-08-20 17:46
いつもお世話になります。

プロジェクト内のページから直接アドレスを指定して
@IT等プロジェクト以外のホームページに飛んだ時
セッションを切る事は出来るのでしょうか?

現在セキュリティーとしてログイン画面を通過した場合に
セッション変数にログイン名を取得しておき
セッション変数がない場合はログインに強制的に飛ばしています。
タイムアウトは指定していません。
プロジェクトはWebフォームで作成しています。
この場合他のURLに飛んでもブラウザ落とさない限り
セッションは続いていますよね?

デストラクタで、とか試して見たのですが
デストラクタはWebフォームでは使わないほうが得策だと聞きました

何かいい方法があれば御教授願えませんか?お願いします
緑茶
常連さん
会議室デビュー日: 2003/08/17
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2003-08-20 17:54
引用:

プロジェクト内のページから直接アドレスを指定して
@IT等プロジェクト以外のホームページに飛んだ時
セッションを切る事は出来るのでしょうか?



HttpSessionState.Abandon()
でセッションを無効にできたと思うのですが。
aiai
会議室デビュー日: 2003/08/18
投稿数: 16
投稿日時: 2003-08-20 18:21
さっそくのお返事ありがとうございます。
そのメソッドでセッションが切れそうですね。

ただ、今回疑問に思ったのは
何処でそのメソッド使うのでしょうか?ということになりそうです。
引用:
現在セキュリティーとしてログイン画面を通過した場合に
セッション変数にログイン名を取得しておき
セッション変数がない場合はログインに強制的に飛ばしています。


というように、各ページでセッションを終了時無効にすると
(終了時の取り方も少し怪しいのですが(^^; )
画面が変わる毎にログインに戻されてしまいませんでしょうか?
プロジェクト内のURLとそれ以外のURLの判断があるのでしょうか?

お願いいたします。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-08-20 19:53
引用:

aiaiさんの書き込み (2003-08-20 17:46) より:
プロジェクト内のページから直接アドレスを指定して
@IT等プロジェクト以外のホームページに飛んだ時
セッションを切る事は出来るのでしょうか?


直接アドレスを指定された場合は対処できません。

引用:

この場合他のURLに飛んでもブラウザ落とさない限り
セッションは続いていますよね?


いえ、セッションの保持期間はサーバ側で設定できます。
デフォルトで20分だったかと思います。
この時間を短くするぐらいの対処しかないと思います。
aiai
会議室デビュー日: 2003/08/18
投稿数: 16
投稿日時: 2003-08-21 12:45
小野@EACさんありがとうございます。
引用:
直接アドレスを指定された場合は対処できません。


色々と自分でも調べて見たのですが
どうやらそのようですね。
実際HotmailやYahooメールなんかでも
ログアウトかブラウザ落とすかしないと
つながったままですし、Webではこの形が一般的なのでしょうか

Web開発は初めてなので
どうしてもwindowsアプリの考え方を、
Webアプリに持ってきてしまいがちで
なにかにつけて四苦八苦しております。

ご指導ありがとうございました。
NYRL
ベテラン
会議室デビュー日: 2003/07/14
投稿数: 90
投稿日時: 2003-08-21 13:44

強引に解決する方法

・フレームを作る
・業務はフレームの内部に表示する。
・親フレームの BODY の Unload に Javascript を書き
セッションを切断するプログラム(HttpSessionState.Abandon()を実行する)を
呼び出すようにする。
・urlが変更されると親フレームのunloadが走るのでセッションが切れる。

とこんな感じでやれるはず・・・
1

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