Пользователи онлайн

Статус
В этой теме нельзя размещать новые ответы.

lolhoha

Постоялец
Регистрация
8 Мар 2009
Сообщения
148
Реакции
15
привет всем.

сделал на одной цмс (на C#) функцию просмотра посетителей на сайте онлайн.
работает только с записями бд, проверяет запись в бд на устарелость по дате, стирает...и опять записывает... вообщем вышлю довольно допотопно.


таблица:
d77de.png


Заносит юзера в таблицу юзеров-онлайн (masterpage.aspx)
Код:
    protected void UsersOnline()
    {
 // проверяем есть ли ip юзера в списке онлайн-пользователей
            if (!new UsersOnlineDb().GetIpOnline(HttpContext.Current.Request.UserHostAddress))
            {
                // заносим пользователя в таблицу онлайн-списка
                string usertype = "";
                string userid = "";
                string browser = HttpContext.Current.Request.Browser.Type + " / " + HttpContext.Current.Request.Browser.Browser;

                if (UserType.Manager)
                {
                    usertype = "Менеджер";
                    userid = HttpContext.Current.User.Identity.Name.TrimStart('s').TrimStart('_');
                }
                else if (UserType.Admin)
                {
                    usertype = "Администратор";
                    userid = HttpContext.Current.User.Identity.Name;
                }
                else if (UserType.Customer)
                {
                    usertype = "Покупатель";
                    userid = HttpContext.Current.User.Identity.Name.TrimStart('c').TrimStart('_');
                }

                new UsersOnlineDb().Add(HttpContext.Current.Request.UserHostAddress, usertype, browser, userid);

            }
}

DAL: очищает устаревшие записи
Код:
/// <summary>
        /// удаляем юзеров со старой date
        /// </summary>
        public DateTime DelOffUsers()
        {   
            SqlCommand cmd = new SqlCommand(string.Format("delete from UsersOnline where Date < '{0}'", DateTime.Now.ToString("MM.dd.yyyy HH:mm:ss")));
            return Convert.ToDateTime(Db.ExecuteScalar(cmd));
        }


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

если можно, хотя бы алгоритм.

спасибо.
 
тема закрыта.
решение найдено, ввиде класса Membership (System.Web.Security)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху