Проверьте, использует ли кто-либо приложение ASP.Net (сайт) - PullRequest
2 голосов
/ 05 октября 2010

Я создаю веб-сайты ASP.NET (обычно размещаемые в IIS 6, часто с бэкэндом SQL Server и аутентификацией форм).

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

Я знаю, что сеть в основном не имеет состояния, поэтому я могу 'Я не уверен, что кто-то закрыл окно браузера, но я предполагаю, что будет некоторое количество еще не истекших сессий или что-то в этом роде, и наверняка вошедшие в систему пользователи ...

Есть листандартный и / или простой способ проверить это?

Ответы [ 5 ]

1 голос
/ 08 июня 2012

Я знаю, что это довольно старый вопрос, но я решил, что я буду вмешиваться. Почему бы не использовать Google Analytics и просматривать их панель мониторинга в реальном времени? Это потребует незначительных модификаций кода (то есть импорт одного скрипта) и сделает все, что вы ищете ...

1 голос
/ 05 октября 2010

Ответ Якоба правильный, но он зависит от установки и настройки функций Членства.

Грубым, но простым способом отслеживания пользователей в Интернете будет сохранение счетчика в объекте Application . Этот счетчик может быть увеличен / уменьшен после начала и окончания их сеансов. Вот пример этого на веб-сайте MSDN:

События состояния сеанса (библиотека MSDN)

Поскольку время ожидания сеанса по умолчанию составляет 20 минут, точность этого метода не гарантируется (но в таком случае это применимо к любому веб-приложению из-за отключенной от состояния и отключенной природы HTTP).

0 голосов
/ 03 февраля 2014

Вы можете запустить команду netstat и посмотреть, сколько активных соединений существует с портами вашего сайта. Порт по умолчанию для http: *: 80. Порт по умолчанию для https: *: 443.

0 голосов
/ 05 октября 2010

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

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

Таким образом, я предлагаю использовать журналы сервера, чтобы определить, находится ли веб-сайт в данный момент.используется многими людьми.Это дает вам возможность:

  • См. , какие запросы выполняются .Довольно просто обнаружить людей и сканеров , и с некоторым опытом можно также увидеть, делает ли человек что-то критическое (например, написаниекомментировать веб-сайт, редактировать документ или вводить номер своей кредитной карты и заказывать что-либо) или нет (например, просмотр).
  • См. , кто выполняет эти запросы .Например, если Google сканирует ваш веб-сайт, переходить в автономный режим очень плохо, если только поисковый рейтинг не имеет значения для вас.С другой стороны, если бот пытается в течение двух часов взломать ваш сайт, выполняя запросы к разным страницам, вы можете обязательно отключиться от сети.

Примечание: если на сайте есть несколько критических областей (например, при написании этого длинного ответа, я был бы зол, если переполнение стека отключится через несколько секунд перед отправкой ответа), вы также можете отправлять регулярные запросы AJAX на сервер, пока пользователь остается на странице.Конечно, вы должны быть осторожны при реализации такой функции и учитывать, что она увеличит используемую полосу пропускания и не будет работать, если у пользователя отключен JavaScript).

0 голосов
/ 05 октября 2010

Возможно, вы ищете метод Membership.GetNumberOfUsersOnline , хотя я не уверен, насколько он надежен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...