- - PR -
プロジェクト以外のURLへジャンプした時のセッション切断
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-08-20 17:46
いつもお世話になります。
プロジェクト内のページから直接アドレスを指定して @IT等プロジェクト以外のホームページに飛んだ時 セッションを切る事は出来るのでしょうか? 現在セキュリティーとしてログイン画面を通過した場合に セッション変数にログイン名を取得しておき セッション変数がない場合はログインに強制的に飛ばしています。 タイムアウトは指定していません。 プロジェクトはWebフォームで作成しています。 この場合他のURLに飛んでもブラウザ落とさない限り セッションは続いていますよね? デストラクタで、とか試して見たのですが デストラクタはWebフォームでは使わないほうが得策だと聞きました 何かいい方法があれば御教授願えませんか?お願いします | ||||||||
|
投稿日時: 2003-08-20 17:54
HttpSessionState.Abandon() でセッションを無効にできたと思うのですが。 | ||||||||
|
投稿日時: 2003-08-20 18:21
さっそくのお返事ありがとうございます。
そのメソッドでセッションが切れそうですね。 ただ、今回疑問に思ったのは 何処でそのメソッド使うのでしょうか?ということになりそうです。
というように、各ページでセッションを終了時無効にすると (終了時の取り方も少し怪しいのですが(^^; ) 画面が変わる毎にログインに戻されてしまいませんでしょうか? プロジェクト内のURLとそれ以外のURLの判断があるのでしょうか? お願いいたします。 | ||||||||
|
投稿日時: 2003-08-20 19:53
直接アドレスを指定された場合は対処できません。
いえ、セッションの保持期間はサーバ側で設定できます。 デフォルトで20分だったかと思います。 この時間を短くするぐらいの対処しかないと思います。 | ||||||||
|
投稿日時: 2003-08-21 12:45
小野@EACさんありがとうございます。
色々と自分でも調べて見たのですが どうやらそのようですね。 実際HotmailやYahooメールなんかでも ログアウトかブラウザ落とすかしないと つながったままですし、Webではこの形が一般的なのでしょうか Web開発は初めてなので どうしてもwindowsアプリの考え方を、 Webアプリに持ってきてしまいがちで なにかにつけて四苦八苦しております。 ご指導ありがとうございました。 | ||||||||
|
投稿日時: 2003-08-21 13:44
強引に解決する方法 ・フレームを作る ・業務はフレームの内部に表示する。 ・親フレームの BODY の Unload に Javascript を書き セッションを切断するプログラム(HttpSessionState.Abandon()を実行する)を 呼び出すようにする。 ・urlが変更されると親フレームのunloadが走るのでセッションが切れる。 とこんな感じでやれるはず・・・ |
1