Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 187
1
.NET 4.x

Проверка и работа с лицензией на сервере и клиенте

08.09.2020, 17:18. Просмотров 2342. Ответов 2

Задача в следующем: получить уникальный идентификатор машины, на котором будет запускаться программа, проверить этот идентификатор в базе данных, если идентификатор есть, разрешить программе продолжить работу. Но вопрос не в этом, моделирую конкретную ситуацию, которая у меня возникает:
1) например, пользователь покупает лицензию, например на 3 рабочих машины, он запускает на машине программу и как зафиксировать на сервере, что одна лицензия занята и осталось только две.
2) Как отследить, например, что пользователь закрыл программу и лицензия снова освободилась и ее можно использовать на других машинах пользователя.
3) Какие инструменты в данный момент актуальны для этой задачи, как например это делают профессионалы

Собственно интересует сама концепция, объяснение на пальцах, идея, подойдет даже схема, нарисованная на paint, КОД НЕ ИНТЕРЕСЕН, пока что. Одна оговорка, примечание! Ключи не хочу хранить категорически на машине пользователя!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2020, 17:18
Ответы с готовыми решениями:

Переменная на клиенте и на сервере
Доброго дня. Хочу прояснить такое дело. Объявлена переменная Тест. Если я инициализирую ее в...

Папки на сервере и клиенте
Использую ClientSocket1 и ServerSocket1 как просмотреть папки на клиенте в виде дерева, ну как в...

Запуск скрипта и на текушем клиенте и на сервере
Чудо какое-то. LN 7.0.3, а сервер 8 версии. Написал некотороый агент и поставил его исполнятся по...

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

2
115 / 105 / 17
Регистрация: 10.02.2013
Сообщений: 271
12.09.2020, 14:08 2
Алгоритм проверки лицензии лучше вынести в нативную библиотеку, написанную на Си.
Код .NET приложений очень хорошо просматривается, даже через софтину ILSpy.
И нужно хорошо обфусцировать, запутать код.
На сервере можно создать БД с пользователями и сессиями.
На каждого пользователя установить ограничение в количество одновременно активных сессий.
Активность сессий можно проверять, например, каждые несколько минут, или даже секунд.
Программа будет отстукиваться на сервер, и если например какое-то время запросов от клиента не исходит, то сессию можно считать неактивной.
И лучше всего основные алгоритмы для работы программы держать на сервере.

Это то что пришло в голову на данный момент. Хотя эта тема требует довольно таки глубоких рассуждений, на мой взгляд.
И отталкиваться стоит уже от функционала программы. В каждом случае предпринимаются те или иные методы защиты.
Иногда проще сайт сделать вместо программы.
1
6 / 6 / 5
Регистрация: 25.02.2015
Сообщений: 187
13.09.2020, 13:00  [ТС] 3
Все перенести на сайт не возможно, программа выполняет функции, которые нереально запилить на js, php, python, ваша идея близка к моей идеи которая пришла мне в голову неделю назад - т.е. нужена страничка с кодом php и js, которая будет обрабатывать данные запроса, который будет присылать программа и только на страничке должен иметься код который будет работать с БД, тогда все это дело будет в сохранности. Ну и про парсинг .NET приложений, конечно знаю) весь код с магией проверки сессии и самих функций конечно же будет помещен в библиотеки обфусцированные спец. программами)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2020, 13:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Где выполняется функция на сервере или клиенте?
как определить где выполняется функция на сервере или клиенте?

Шифрование данных на клиенте и дешифровка на сервере реализация SSL
Здравствуйте друзья. Зашел вопрос о том, как можно реализовать принцип обертывания данных...

Как узнать, исполняется код на сервере или на клиенте?
Подскажите, пожалуйста

Необходимо выдать сообщение на клиенте по ходу выполнения действий на сервере.
Необходимо выдать сообщение на клиенте по ходу выполнения действий на сервере. Кто-нибудь...

Как подключиться к базе данных MySQL на сервере из скрипта на клиенте?
Доброй ночи, у меня при изучений Python 'а 3 возник такой вопрос, можно ли как то подлключиться к...

Чат: ошибка в клиенте и на сервере при выполнении NetworkSteam.Read
Я скачал готовый проект чата (см. во вложениях). Он должен работать но мне выдаёт ошибку в клиенте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.