2009-08-06 4 views
0

Я пытаюсь найти в приложении asp.net пользователей, которые в настоящее время регистрируются в приложении, путем поиска информации о сеансе. В настоящее время я могу видеть только текущую сессию, но я не могу узнать, есть ли у нее другие пользователи. Есть ли способ увидеть, есть ли другие пользователи, использующие приложение, просмотрев информацию о сеансе.ASP.NET-сессии

ответ

3

Состояние сеанса для каждого пользователя. Состояние приложения (глобальное) похоже на то, что вы ищете. Существует 2 хеш-сессии и приложение, в которых вы можете хранить пары ключ-значение.

Способ сделать это будет обновлять Application[UserNamesList] всякий раз, когда есть успешный вход в систему. Тогда это будет видно всем пользователям. Состояние приложения, однако, будет потеряно всякий раз, когда веб-сервер приложений будет перезагружаться или перезагружаться ... но это не должно быть проблемой в этом случае.

+1

@ Javier- Не забудьте заблокировать/разблокировать объект приложения, если вы решите его использовать. – RichardOD

0

Сессия должна предоставлять только информацию о текущем входе пользователя.

Если вам нужно отслеживать всех зарегистрированных пользователей, вы можете рассмотреть возможность записи пользователей в глобальную переменную. Here is info on how that works. Обратите внимание, что сеансы заканчиваются. Вам нужно было бы написать для каждого пользователя время, которое пользователь видел в последний раз (т. Е. Каждый раз, когда они попадают на новую страницу, обновляют свою запись). Когда время, которое они видели в последний раз, больше, чем ваш тайм-аут сеанса, можно с уверенностью предположить, что они больше не вошли в систему, и вы можете удалить их из списка текущих пользователей. Если они просто встанут и закроют свой браузер, вас не будут предупреждать, и вы все равно подумаете, что они вошли в систему, даже если это не так.