ASP.netサイト(.NET 4、EF、jQuery Ajax、SQL Server 2008 R2を使用)を開発しています。このサイトでは、私はmulti-login
を防ぎたいです。私はあなたが既にログインしているので、あなたがサイトにログインすると、別のブラウザまたはコンピュータから再度サイトにログインできないことを意味します。ユーザーが複数のセッションに自分のサイトにログインするのを防ぐにはどうすればいいですか?
私はアイデアを植え、私のサイト上でそれを開発したが、それは問題を抱えていると私はここに
を質問をすることを決定し、その問題は、私は、このようなSQL Serverのテーブル持っているので、それは次のとおりです。
をUserId = The Id of logged in user
Key = Session.SessionId
またWH実行し、このテーブルからレコードを削除するためのコードがある:ユーザログがサイトに、私はこのように、このテーブルに行を挿入
Id [int] NOT NULL IDENTITY(1,1) //PK
UserId [int] NOT NULL //Relation to User table
Key [nvarchar](50) NOT NULL //Unique
- ユーザーは、すべてがちょうど、正しいと完璧な作品
global.asax
Session_End
イベントでそのアカウント
問題:ユーザーがブラウザを閉じますその行は削除されません(私は彼がブラウザを閉じると、そのテーブルの行はSession_End
イベントで削除されると思ったが、それはなかった!!!)
どうすればよいですか?この問題の解決策はありますか?私の戦略を変えなければならないのか、それとも解決策があるのだろうか?
ご迷惑をおかけして申し訳ありません。
自分自身私はASP 会員を使用して、私のユーザーを管理していない:私は英語
に任意のアイデアがUPDATE1
よろしく
Foroughi
役立ちます新しいですUPDATE2:私はを使用します。InProc mo私のセッション状態のために20分のタイムアウトで
ユーザが新しいログインをしたときに既存のセッションをログアウトする方が簡単ですか?これは、ユーザーが別の場所(ホーム/仕事など)でログアウトするのを忘れた場合にも、より実用的です。 –
@marc_sありがとう、ありがたいです。 –
@AliForoughi:問題ありません。質問はまだ明確で完全に理解できます。 –