Как в ASP.NET показать на странице количество пользователей онлайн? - CodeHelper

Как в ASP.NET показать на странице количество пользователей онлайн?

1

Как показать сколько пользователей в настоящий момент имеют активную сессию на сайте ASP.NET?

Новые ответы


1

Если нужно выводить количество или имена авторизованных пользователей, то нужно использовать статичные методы класса Membership:

// Возвращает количество авторизаванных пользователей
Membership.GetNumberOfUsersOnline(); 
// Возвращает коллекцию авторизованных пользователей
Membership.GetAllUsers();

Для функции Membership.GetAllUsers есть перегруженный вариант, поддерживающий постраничный вывод.

1

Если нужно показать число активных пользователей на сайте (в том числе и не авторизованных), то можно хранить число пользователей в объекте глобальном Application и подписаться на события начала и окончания сессии в Global.asax:

void Application_Start(object sender, EventArgs e)
{
    Application["UsersOnline"] = 0;             1
}

void Session_Start(object sender, EventArgs e)
{
    var onlineUsersCount =                      2
        Convert.ToInt16(Application["UsersOnline"]);
    Application["UsersOnline"] = (onlineUsersCount + 1).ToString();
}

void Session_End(object sender, EventArgs e)
{
    var onlineUsersCount =                      3
        Convert.ToInt16(Application["UsersOnline"]);
    Application["UsersOnline"] = (onlineUsersCount - 1).ToString();
}
  • 1 — при запуске приложения устанавливаем счетчик в ноль.
  • 2 — при старте новой сессии прибавляем к счетчику единицу.
  • 3 — при окончании сессии отнимаем от счетчика единицу.

На странице отображаем значение счетчика:

private void Page_Load(object sender, System.EventArgs e) 
{ 
   onlineUsersCountLabel.Text = Application["OnlineUsers"];
}

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.