Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
1

Вывести всех пользователей сайта, которые online

09.04.2012, 23:16. Показов 3286. Ответов 23
Метки нет (Все метки)

Стоит цель - вывести всех пользователей сайта, которые online. Обязательно ли реализовывать Membership или можно как-то по-другому ? На сайте уже реализован RoleManager
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2012, 23:16
Ответы с готовыми решениями:

Вывести список последних пользователей которые, входили на портал
Прислали тестовое задание с одной фирмы, вроде-бы для новичка C# Только я C# недавно начал...

Сколько пользователей online
Сейчас пишу приложение на ASP.NET Как подсчитать и выводить на главную форму количество on-line...

Вывести из бд id всех пользователей которые сделали действие
Всем привет, возник вопрос, как вывести из бд id всех пользователей которые к примеру сделали...

Вывести ссылки у всех пользователей, которые активны
Здравствуйте! Нужно вывести ссылки у всех пользователей которые активны. Table source: id...

23
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
09.04.2012, 23:29 2
заносите их в таблицу usesonline или что-то в этом духе, и при их выходе - удаляйте пользователей из этой таблицы.
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
10.04.2012, 19:08  [ТС] 3
Цитата Сообщение от y-fox Посмотреть сообщение
заносите их в таблицу usesonline или что-то в этом духе, и при их выходе - удаляйте пользователей из этой таблицы.
а как отслеживать сам факт того, что они онлайн ?
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 19:13 4
Когда будут входить, заносите их в таблицу (у вас же есть ф-ция входа).
Выходить на фции выхода, и если просто закрыли браузер то на Session_OnEnd в global.asax(по крайней мере я не нашел лучшего места для выхода пользователя, если он не нажимал кнопку "Выход")
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
10.04.2012, 19:17  [ТС] 5
Цитата Сообщение от y-fox Посмотреть сообщение
заносите их в таблицу usesonline или что-то в этом духе, и при их выходе - удаляйте пользователей из этой таблицы.
Думаю, этот способ не очень хорош. Я так понимаю лучше реализовать membership и будет удобней ?
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 19:22 6
Ваш выбор.
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
10.04.2012, 21:35  [ТС] 7
НУ вот зашел пользователь
Цитата Сообщение от y-fox Посмотреть сообщение
и если просто закрыли браузер то на Session_OnEnd в global.asax
можно немного поподробней пожалуйста
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
10.04.2012, 21:45 8
C#
1
2
3
4
5
6
7
8
9
10
public void Session_OnEnd()
{
     if (Session["cuid"]!=null)
     {
         int uid = (int)Session["cuid"];//Тут я хранил ID текущего пользователя
         Session.Clear();
         var ure = new Model.Repositories.UsersRepository();//Это мой класс репозитория пользвателей
         ure.Logout(uid);//Ф-ция удаляет пользователя из таблици UsersOnline
     }
}
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
11.04.2012, 19:17  [ТС] 9
Цитата Сообщение от y-fox Посмотреть сообщение
Session["cuid"]
Подскажи пожалуйста, как правильно после того как пользователь авторизовался и аутентифицировался ..начать для него сессию ( я всмысле программно как пишется ) ?
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
11.04.2012, 19:22 10
C#
1
Session["myvalue"] = myvalue;
Добавлено через 1 минуту
Вообще, сессия стартует автоматически, если не выключена в настройках на вебсервере или в web.config
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
11.04.2012, 19:24  [ТС] 11
Цитата Сообщение от y-fox Посмотреть сообщение
Вообще, сессия стартует автоматически, если не выключена в настройках на вебсервере или в web.config
Получается она у меня стартует автоматически , а тогда , как вот здесь ее отлавливать ?
Цитата Сообщение от y-fox Посмотреть сообщение
if (Session["cuid"]!=null)
и как присваивать ID пользователя

Цитата Сообщение от y-fox Посмотреть сообщение
int uid = (int)Session["cuid"];
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
11.04.2012, 19:33 12
ну, вошел пользователь, вы его инфо получили, и записали в сессию.
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
11.04.2012, 19:38  [ТС] 13
Цитата Сообщение от y-fox Посмотреть сообщение
ну, вошел пользователь, вы его инфо получили, и записали в сессию.
как это делается ?

Цитата Сообщение от I3axo Посмотреть сообщение
if (Session["cuid"]!=null)
"cuid" что значит ? это название одной общей сессии ? или конкретно сессии пользователя ?
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
11.04.2012, 19:52 14
то название переменной в сессии, ключ. Так называется потому, что я так назвал, а вообще, почтайте книгу по asp.net и ado.net.
По поводу сессии
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
11.04.2012, 21:22  [ТС] 15
Сделал так...
Пользователь заходит :
C#
1
2
3
4
5
6
 FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false);
            UsersDate us = new UsersDate();
            us.AddOnlineUser(Page.User.Identity.Name);
            Session["Name"] = Page.User.Identity.Name;
 
            Response.Redirect("~/.....aspx");
метод AddOnlineUser() заносит его в онлайн
при выходы
C#
1
2
3
4
 FormsAuthentication.SignOut();
        UsersDate us = new UsersDate();
        us.DeleteOnlineUser(Page.User.Identity.Name);
        FormsAuthentication.RedirectToLoginPage();
метод DeleteOnlineUser() удаляет его из онлайн.
Теперь проблема в том, что когда пользователь заходит первый раз, то метод выполняется и БД апдейтится и если выйти, то тоже метод выполняется, но при повторном входе пользователя на сайт метод не выполняется (не апдейтится БД), с чем это связано ???
0
2470 / 1918 / 345
Регистрация: 22.07.2011
Сообщений: 7,276
11.04.2012, 22:07 16
Session["Name"] = Page.User.Identity.Name; - лишнее, Page.User.Identity.Name итак заполняется для сессии.
Response.Redirect("~/.....aspx"); - тоже лишнее, т.к FormsAuthentication.RedirectFromLoginPage уже перенаправляет пользователя.
с чем это связано ???
просто посмотри в режиме отладки все ли значения передаются и какие методы вызываются, и вообще немного странный код в разделе пользователь заходит - RedirectFromLoginPage регистрирует кукисы и перенаправляет прошедшего проверку подлинности пользователя на дефолтную страницу, после редиректа браузер передаст куки и Page.User.Identity.Name будет инициирован, а до редиректа он пустой, может по этому и добавлять некого ?
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
11.04.2012, 22:17 17
Я советовал username или userid хранить в сессии для выхода при окончании сессии, на случай если пользователь не нажал кнопку LogOut, в событии Session_OnEnd, в это событие не приходит куки и остальное из http.
0
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 88
11.04.2012, 22:33  [ТС] 18
Цитата Сообщение от sau Посмотреть сообщение
и вообще немного странный...
Поправил. сделал так:
C#
1
2
3
 UsersDate us = new UsersDate();
            us.AddOnlineUser(TextBox1.Text.ToLower());
            FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false);
У меня FormsAuthentication.RedirectFromLoginPage() не редиректит сам никуда. Что должно быть указано ?
Цитата Сообщение от y-fox Посмотреть сообщение
советовал username или userid хранить в сессии для выхода при окончании сессии, на случай если пользователь не нажал кнопку LogOut, в событии Session_OnEnd, в это событие не приходит куки и остальное из http.
а с этим то тогда, что делать , если
C#
1
Session["Name"] = Page.User.Identity.Name;
лишнее ? как отслеживать , что пользователь вышел на "красную" кнопку )
0
2470 / 1918 / 345
Регистрация: 22.07.2011
Сообщений: 7,276
11.04.2012, 22:41 19
Цитата Сообщение от I3axo Посмотреть сообщение
У меня FormsAuthentication.RedirectFromLoginPage() не редиректит сам никуда. Что должно быть указано ?
- в конфиге прописать DefaultUrl для раздела аутентификации.
Если же хочешь самостоятельно перенаправлять то прежде задай куки SetAuthCookie
http://msdn.microsoft.com/ru-r... 5762b.aspx
лишнее ? как отслеживать , что пользователь вышел на "красную" кнопку
- Нужно в двух местах отслеживать, это самостоятельный выход и окончание сессии (FormsAuthentication.SignOut - просто удаляет инфу из кукисов),в событии окончания сессии можно проверять HttpContext.Current.User.Identity.Name
0
518 / 510 / 68
Регистрация: 19.09.2011
Сообщений: 826
11.04.2012, 22:56 20
в Session_OnEnd HttpContext.Current.User - будет = null. Или какое событие окончания сессии есть еще?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2012, 22:56

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Получить данные всех пользователей, которые закреплены за определенным пользователем
Доброе время суток. Возник вопрос. Задача: получить данные всех пользователей которые...

Чисто теоретически можно ли сниффером отследить весь трафик всех пользователей сайта?
Вот например есть букмекерская контора или интернет-магазин или еще что-то подобное,можно ли...

Нужно вывести список пользователей сайта
Здравствуйте уважаемые форумчане. Стоит задача на тестовом сайте (для моего обучения :))вывести...

Вывести пользователей которые входят в несколько групп
Пытаюсь вывести пользователей которые входят в несколько групп, от 2х и более, но ни как не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.