2012-05-15 1 views
1

Я хотел бы узнать количество пользователей, зарегистрированных для каждой роли в моем приложении ASP.NET У меня есть роль (Admin) и роль (остальное) я хочу знать, число пользователей Интернета для каждого из них не всего приложения, что этот метод сделал:Как получить число пользователей в Интернете для каждой роли с помощью ASP.NET

Membership.GetNumberOfUsersOnline() 

ответ

1

Вам нужно будет перечислить пользователь самостоятельно. Если вы используете

Membership.GetAllUsers() 

вы получаете коллекцию всех доступных пользователей. Затем вы можете пройти через каждого пользователя и проверить свойство IsOnline, чтобы узнать, находится ли он в сети. Чтобы определить роли пользователя, вы можете использовать методы в классе Roles.

Например, если у вас есть две роли admin и rest, и вы хотели бы показать, сколько пользователей он-лайн в каждой роли, вы могли бы сделать что-то вроде этого:

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 

Если у вас есть более сложная структуры ролей или многих ролей, вы можете использовать карту для хранения счета на роль. Логика зависит от вас, чего вы хотите достичь, это должно предоставить все части, необходимые для выражения вашей логики подсчета.

+0

Привет, mellamokb, спасибо за ответ, посмотрим дальше в этом –

+0

, пожалуйста, уточните –

+0

См. Обновление с примером. – mellamokb

Смежные вопросы