0

ユーザーがログインできるWebアプリケーションがあります。

ここで必要なのは、同じユーザーが異なるブラウザーを使用してログインできないようにすることです。

基本的に現在、2 つの異なるブラウザー (IE と FF) を使用しているユーザーは、同じアカウントに同時にログインできます。ログインボタンを押すと、そのアカウントの他のすべてのログインを無効にすることはできますか?

これを行うための最善の方法は何ですか?

PS: Web アプリケーションでは Struts、Spring、および Hibernate を使用しています。

ありがとう !

4

3 に答える 3

2

サーバー側でこれを行うのが最善の策です。ログインしているユーザーの軌跡をアプリケーション コンテキストに保持できます。

さて、ちょっとしたヒント。サーブレット フィルターを使用して、たとえばAuthFilter、検証を行うと、ユーザー名/パスワードなどの他の検証の横にある可能性がisAlreadyLoggedIn()あります。ユーザーがログインしようとしている場合、「ユーザーはすでにログインしています」というメッセージを表示するか、ユーザーにログインさせて前のセッションを無効にすることができます。ここで説明したように。

于 2011-04-12T06:16:14.407 に答える
0

ログインしたユーザー情報をデータベースに保存するか、アプリケーション コンテキストから取得できます。ユーザーがすでにログインしている場合は、別のセッションを許可しないでください。

于 2011-04-12T06:19:55.500 に答える
0

Googleは、同じブラウザまたはタブでログオフするのではなく、 IP アドレス メカニズムを使用して、別のコンピュータにログインしているユーザーをログアウトします。

geoip データベース Geolitecityを使用 して、ユーザーの ip + Balusc の保存セッションの回答をユーザーをキーとして保存し、ソリューションの ip アドレスを使用できる可能性があります。

データベースに列isLoggedInがあります。Yに設定すると、ログインした場合、同じユーザーが別のコンピューターまたはブラウザーからログインした場合、セッションが無効になります。セッションが期限切れになった場合は、Nに設定してください。

* Baluscの回答をよく読んでください*

を使用して、同一のユーザー名とパスワード を使用し た複数のログインを防止しますHttpSessionBindingListener

于 2011-04-12T06:21:53.737 に答える