2

LogOn私は基本的に、ユーザー名を見て、ユーザー名が既にログインしていることを判断する条件ステートメントを自分のアクションに設定したいと考えています。

どの時点でユーザーに通知する必要があります。

そのアカウントはログインしています。乗っ取られたと思われる場合は、やだやだやだ。

この条件の後に何か追加できると思ったのですが、私の作成したメソッドのようなものはMembership.CheckIfUserIsOnline(string username)すでにありますか?

   if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(model.UserName, model.Password))
        {
            //See the line below, I made this method up.
            if (Membership.CheckIfUserIsOnline(model.UserName){
                ModelState.AddModelError("", "Someone else is logged into this account.");
            }
4

1 に答える 1

3

セッション状態を使用している場合は、(理想的にはアプリケーション全体のキャッシュまたはアプリケーション データベースに) ユーザー ID をキーとするレコードを保存し、セッション ID を保存します。

次に、複数のログオンを検出する場合は、ログインしているユーザー ID を現在のセッション ID と照合します。データベースに保存されているセッション ID が現在のセッションのセッション ID と一致しない場合は、複数のログオンを示している可能性があります。

データストアからの値の期限切れ (アプリケーション全体のキャッシュがアプリケーションデータベースよりも優れている理由) とセッションの通常の終了 (ログオフ時) に対処する必要がありますが、それを使用するだけの場合はユーザーに警告します。おそらくそれで十分です。

于 2011-07-19T17:49:55.570 に答える