1

ASP.NETアプリケーションにログインしている各役割のユーザー数を知りたいです。(管理者)役割と(残りの)役割を持っています。アプリケーション全体ではなく、それぞれのオンラインユーザー数を知りたいです。メソッドはしました:

Membership.GetNumberOfUsersOnline()
4

1 に答える 1

1

ユーザーを自分で列挙する必要があります。あなたが利用する場合

Membership.GetAllUsers()

利用可能なすべてのユーザーのコレクションを取得します。次に、各ユーザーをループし、IsOnlineプロパティをチェックして、ユーザーがオンラインであるかどうかを確認できます。Rolesユーザーの役割を決定するために、クラスのメソッドを利用できます。

たとえば、2つのロールadminrestがあり、各ロールでオンラインになっているユーザーの数を表示したい場合は、次のように実行できます。

var adminCount = 0, restCount = 0;
foreach ( var user in Membership.GetAllUsers().Where(u => u.IsOnline) )
    if (Roles.IsUserInRole(user.UserName, "admin"))
        adminCount++;
    else if (Roles.IsUserInRole(user.UserName, "rest"))
        restCount++;

// do something with adminCount and restCount

より複雑な役割構造または多くの役割がある場合は、マップを使用して役割ごとの数を保存できます。ロジックはあなたが達成したいことはあなた次第です、これはあなたのカスタムカウントロジックを表現するために必要なすべての部分を提供するはずです。

于 2012-05-15T14:44:57.340 に答える