Защита приложения ASP.NET с использованием ограничения на количество входов - PullRequest
1 голос
/ 23 марта 2011

Я пытаюсь найти решение для контроля количества логинов в приложении asp.net.Мне нужно установить приложение на клиентском сервере и установить количество лицензий.например, только 10 пользователей имеют доступ к приложению.

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

Я пытался с сертификатом, но я не мог видеть, где сопоставить количество зарегистрированных пользователей с максимальным количеством разрешенных пользователей.

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

В основном это веб-приложение будет продаваться по лицензиям.Нам нужно контролировать входы в систему на компьютере, а не на пользователя, и блокировать входы в систему при достижении предела количества входов.

Пожалуйста, прости меня, если мне не понятно описание.

Спасибо за любую помощь.

Ответы [ 3 ]

0 голосов
/ 23 марта 2011

Я бы использовал SessionID в объекте Session в качестве ключа, я бы сохранил его вместе с UserID для вошедшего в систему пользователя в базе данных или в каком-либо хранилище резервных копий.Я бы использовал Session_End в global.asax, чтобы удалить записи выше для любого сеанса с истекшим сроком действия, а также удалить их в любой функции выхода из системы.Вам должно быть довольно просто подсчитать количество активных сессий, которые у вас есть, и подтвердить, что это не тот же пользователь, который снова входит в систему, если это разрешено.

0 голосов
/ 23 марта 2011

Я бы использовал метод Membership.GetNumberOfUsersOnline , если вы используете API членства, чтобы определить количество активных пользователей.

Я считаю, что это число учитывает только количество пользователейВы прошли проверку подлинности, поэтому ее можно использовать в вашем сценарии.

0 голосов
/ 23 марта 2011

Что я хотел бы сделать, это использовать файл global.asax и увеличить счетчик в session_start и уменьшить значение в session_end.Поскольку сеанс хранится в файле cookie, несколько сеансов на одном компьютере создают только один сеанс.

Вот хорошее указание для файла global.asax: http://aspalliance.com/1114_Understanding_the_Globalasax_file.3

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