Для вас первый вопрос, сессии и пользователи не совпадают. У каждого пользователя есть сеанс, но некоторые сеансы не активны и больше не имеют пользователей. Такие сеансы автоматически завершаются механизмом asp.net после истечения времени ожидания. то есть, поскольку http является отключенным протоколом, веб-сервер не может узнать, находится ли пользователь между запросами или только что покинул сеанс.
Если вы хотите отслеживать количество активных сеансов, вы можете использовать методы session_start и session_end файла globals.asax.
У вас может быть простой счетчик, который увеличивается на начало и уменьшается на конец.