2

AD メンバーシップと C# を使用して同じユーザーの複数のログインを防ぐにはどうすればよいですか?

MembershipUser.IsOnline を使用しようとしましたが、これは AD メンバーシップ プロバイダーによってサポートされていません。

これはコードです:

                MembershipUser muser = Membership.GetUser(model.UserName);
                if(muser.IsOnline)
                {
                    //TODO
                }

ただし、次の例外がキャッチされます。「LastLoginDate」は、Active Directory メンバーシップ プロバイダーによってサポートされていません。

4

3 に答える 3

0

これは Active Directory の構成の問題と思われます。ネットワーク ポリシーでキャッシュ資格情報を 0 に設定すると、kerberos チケット キャッシュを使用しなくなります。

次に、次の問題を解決する必要があります。それは、ネットワークで許可するログインの数です。この記事では、そのアプローチの 1 つの方法について説明します: http://technet.microsoft.com/en-us/magazine/2005.05.utilityspotlight. aspx

于 2012-11-22T16:04:42.327 に答える
0

ADメンバーシップクラスの助けを借りていませんが、それでも:

  • セッションが開始されるたびに、ユーザーの SessionId を Application に追加します。
  • ユーザーの SessionId を Cookie に追加する

SessionIdが一致するかどうかを確認する必要があるすべてのリクエスト。

于 2012-11-22T16:04:10.483 に答える
0

私が経験した状況は少し異なっていたと思いますが、同じ原則が適用できると感じています。私の状況では、ユーザー ID が一度に 1 つのデバイスからのみログインされていることを確認する必要がありました (ちなみに、AD ではなくフォーム認証)。ユーザー ID が既存のデバイスにログインしているときに別のデバイスにログインしようとすると、既存のデバイスのセッションが強制終了され、新しいデバイスにログインできるようになりました。Stack Overflow の元の投稿に解決策を書きました。

同じユーザー ID が複数のデバイスにログインしようとしている場合、他のデバイスでセッションを強制終了するにはどうすればよいですか?

于 2013-08-19T20:26:45.410 に答える