lolhoha
Постоялец
- Регистрация
- 8 Мар 2009
- Сообщения
- 148
- Реакции
- 15
- Автор темы
- #1
привет всем.
сделал на одной цмс (на C#) функцию просмотра посетителей на сайте онлайн.
работает только с записями бд, проверяет запись в бд на устарелость по дате, стирает...и опять записывает... вообщем вышлю довольно допотопно.
таблица:
Заносит юзера в таблицу юзеров-онлайн (masterpage.aspx)
DAL: очищает устаревшие записи
подскажите как лучше реализовать функцию мониторинга юзеров в онлайн. может с использованием кукисов, и т.д. желательно чтобы была возможность удаления сессий.
если можно, хотя бы алгоритм.
спасибо.
сделал на одной цмс (на C#) функцию просмотра посетителей на сайте онлайн.
работает только с записями бд, проверяет запись в бд на устарелость по дате, стирает...и опять записывает... вообщем вышлю довольно допотопно.
таблица:
Заносит юзера в таблицу юзеров-онлайн (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));
}
подскажите как лучше реализовать функцию мониторинга юзеров в онлайн. может с использованием кукисов, и т.д. желательно чтобы была возможность удаления сессий.
если можно, хотя бы алгоритм.
спасибо.