Я пытаюсь найти в приложении asp.net пользователей, которые в настоящее время регистрируются в приложении, путем поиска информации о сеансе. В настоящее время я могу видеть только текущую сессию, но я не могу узнать, есть ли у нее другие пользователи. Есть ли способ увидеть, есть ли другие пользователи, использующие приложение, просмотрев информацию о сеансе.ASP.NET-сессии
ответ
Состояние сеанса для каждого пользователя. Состояние приложения (глобальное) похоже на то, что вы ищете. Существует 2 хеш-сессии и приложение, в которых вы можете хранить пары ключ-значение.
Способ сделать это будет обновлять Application[UserNamesList]
всякий раз, когда есть успешный вход в систему. Тогда это будет видно всем пользователям. Состояние приложения, однако, будет потеряно всякий раз, когда веб-сервер приложений будет перезагружаться или перезагружаться ... но это не должно быть проблемой в этом случае.
Сессия должна предоставлять только информацию о текущем входе пользователя.
Если вам нужно отслеживать всех зарегистрированных пользователей, вы можете рассмотреть возможность записи пользователей в глобальную переменную. Here is info on how that works. Обратите внимание, что сеансы заканчиваются. Вам нужно было бы написать для каждого пользователя время, которое пользователь видел в последний раз (т. Е. Каждый раз, когда они попадают на новую страницу, обновляют свою запись). Когда время, которое они видели в последний раз, больше, чем ваш тайм-аут сеанса, можно с уверенностью предположить, что они больше не вошли в систему, и вы можете удалить их из списка текущих пользователей. Если они просто встанут и закроют свой браузер, вас не будут предупреждать, и вы все равно подумаете, что они вошли в систему, даже если это не так.
@ Javier- Не забудьте заблокировать/разблокировать объект приложения, если вы решите его использовать. – RichardOD