- - PR -
VB.NETのログオン制御について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-06 14:53
VB.NETでwebアプリの開発をしています。
ログオン時に、DBへログオン情報を書き込み、 ログオフ時に、DBのログオン情報を削除する制御をさせています。 ログオン後に、メニュー画面にて、一定時間何もしないときに、 タイムアウトを発生させ、ログオフさせたいのですが、 その時の制御方法として良い案はありますでしょうか? 今のところ、タイマーでセッション情報を読み取りにいき、 セッション情報に違いがない場合、ログオフ処理にさせようと思っていますが、 何分素人なので、この方法が一般的とは思えません。。 また、ブラウザの閉じるボタンを押下した時に、 同じくログオフ処理を実行させたいのですが、 これはSession_Endイベントで制御するしかないのでしょうか?? 一般的な制御について、教えて頂ければ幸いでございます。 よろしくお願い致します。 | ||||
|
投稿日時: 2004-10-07 13:57
二重ログオンチェックの為と推定して書きますが、そもそもこういう仕様を実装すべきではないと思っています。システム部門が使うロック解除画面(DB上のみログオンレコードが残って再ログオンできない場合の対策)とかも開発するのですか?
「一般的」で言うなら、サーバ側の設定時間(SessionTimeout)に任せるのが普通かと思いますが、わざわざJavaScriptのタイマーで見に行く必要があるのでしょうか。 ブラウザ閉じるのイベントは、window.onUnloadで取れますが、複雑な処理はさせない方がよい(らしい)です。 | ||||
|
投稿日時: 2004-10-08 05:21
ご回答ありがとうございます。 おっしゃるとおり、タイマーで監視したり、 閉じるボタンの制御をすると複雑になりそうですね。。。 単純にSession_Endイベントで、 ログオフ処理を実行させるようにしました。 そもそも、そういう処理にしようとしていましたが、 サーバー側でタイムアウトを感知するまで、 一定時間待たないと、再ログオン出来ないというところから、 ユーザが間違って「閉じるボタン」を押した場合でも、 すぐにログオンできるような、何か良い案はないかと思い、 こういう考えに至った訳でした。。。 | ||||
|
投稿日時: 2004-10-08 10:53
まったく同じ機能を考え中です。
私は下記の方法で実装しようかと思っております。 1.ログイン時に、DBに現在のセッションIDを登録する。 2.ブラウザを閉じて、再度ログインしにいったとき、 もしくは、1.でログイン中に他のPCなどからログインしにいったとき、 セッションIDは異なるため、二重ログインしている旨の メッセージ画面を表示する。 3.その画面で、先に1.でログインしている接続(セッション)を無効に し、2.の後からの接続(セッション)を有効にする意味のボタンを押 下させる。(キャンセルボタンも用意する) 4.そのボタンを押下したら、後からの接続(セッション)のセッションIDを DBに格納する。 5.ログイン中には、現在のセッションIDとDB内のセッションIDを 常にチェックする。 6.ログアウト、セッションタイムアウトでは、DB内のセッションIDを削除する。 これであれば、ブラウザを閉じられてもセッションタイムアウトまで 待たずに使用させることができますよね。 ん〜、簡単に考えてみたけど、これって問題ないかな??? |
1