amyyoungblood Ответов: 1

Как создать установленную/зарегистрированную лицензию (зарегистрировать устройство) для веб-приложения C#


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

Что я уже пробовал:

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

1 Ответов

Рейтинг:
1

musefan

Я не думаю, что вы можете достичь этого так, как хотите, то есть иметь "зарегистрированные устройства".

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

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

Если бы Вы были счастливы с риском любого из них, то, возможно, вы могли бы что-то сделать. Возьмите всю информацию, которую вы можете получить от клиентской машины, и попытайтесь создать уникальный идентификатор. Что-то вроде предложенного здесь.[^] Затем используйте это, чтобы идентифицировать машину - просто не ожидайте, что она будет безупречной.

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

Каждый раз, когда пользователь входит в систему, вы сохраняете новый токен в своей БД как "действительный" и обязательно аннулируете все остальные предыдущие токены из списка (просто удалите их).
Затем, когда вы получаете запрос для обработки, вы можете проверить маркер аутентификации и убедиться, что он является действительным.