Как запретить пользователю входить с более чем n компьютеров в asp.net - PullRequest
1 голос
/ 20 января 2012

Я ищу способ запретить пользователям с моего веб-сайта, которые регистрируются с парой имен пользователей после регистрации, вход в систему с нескольких компьютеров. На самом деле я ищу способ зарегистрировать компьютеры, с которых пользователи входят в систему, и запретить им давать свое имя пользователя и пароли друг другу. Я обнаружил, что в asp.net и на всех языках программирования веб-сайтов невозможно определить mac-адрес сетевой карты клиента. Между тем такие вещи, как имя браузера и IP-адрес, которые могут быть обнаружены с помощью httpcontext.current, для меня не пригодны, потому что большинство пользователей имеют динамические IP-адреса. Также я хочу что-то более строгое, чем имя компьютера, потому что это не что-то невыгодное.

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

1 Ответ

1 голос
/ 20 января 2012

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

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

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

В долгосрочной перспективе, однако, на самом деле не существует 100% безопасного способа удержать пользователей от совместного использования учетных записей.Самое лучшее, что вы можете сделать, - это попытаться ограничить сценарий "дубликата пользователя", чтобы им было больно, чтобы один и тот же аккаунт входил в систему более одного раза одновременно.

НаконецКак примечание, динамический IP-адрес обычно не меняется так часто (маловероятно, что он изменится во время сеанса приложения), поэтому вы можете также использовать это нечетко.

...