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

Тема в разделе "Другие языки", создана пользователем lolhoha, 7 июл 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. lolhoha

    lolhoha Постоялец

    Регистр.:
    8 мар 2009
    Сообщения:
    148
    Симпатии:
    15
    привет всем.

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


    таблица:
    [​IMG]

    Заносит юзера в таблицу юзеров-онлайн (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));
            }

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

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

    спасибо.
     
  2. lolhoha

    lolhoha Постоялец

    Регистр.:
    8 мар 2009
    Сообщения:
    148
    Симпатии:
    15
    тема закрыта.
    решение найдено, ввиде класса Membership (System.Web.Security)
     
Статус темы:
Закрыта.