Никогда не занимался, подскажите что почитать. Стоит задача: есть сервер приложений на .Net, к нему (в том числе и через интернет ) подключаются клиентские приложения. Нужно реализовать чтобы сервер позволял подключаться только определенному числу клиентов (согласно количеству купленных лицензий). Спасибо
Что мне кажется, что я, наверное, не очень четко поставил задачу. Постараюсь уточнить. Есть сервер на .Net, при подключении к нему, клиентские приложения проходят авторизацию. Нужно чтобы сервер ограничивал количество одновременно авторизирированных пользователей согласно количеству купленных лицензий. (если купоено 30 лицензий, то при попытке аворизироваться 31м — отвечать ему отказом)
С уважением, Владислав Полищук
Re[3]: Реализовать лицензироование .Net сервер
От:
Аноним
Дата:
21.03.10 20:20
Оценка:
Здравствуйте, vladpol, Вы писали:
V>Что мне кажется, что я, наверное, не очень четко поставил задачу. Постараюсь уточнить. Есть сервер на .Net, при подключении к нему, клиентские приложения проходят авторизацию. Нужно чтобы сервер ограничивал количество одновременно авторизирированных пользователей согласно количеству купленных лицензий. (если купоено 30 лицензий, то при попытке аворизироваться 31м — отвечать ему отказом)
Свой сервер вы кому-то поставляете? Похоже на то.
Предложу такой вариант (на авторство не претендую):
— активация с помощью ассиметричного шифрования
— проверка кол-ва клиентов не в одном месте и не сразу, лучше, может, не просто обрубать, а сильно затормозить работу, при этом можно активно использовать Linq и прочие лямбда навороты, тут и без обфускации черт ногу сломит
— для каких-то проверок можно использовать unmanage код, но тогда в нём не должна быть только проверка, а то его просто подменят на свой вариант
— что-бы тут не говорили, посмотрите всё таки на обфускацию
Здравствуйте, vladpol, Вы писали:
V>Что мне кажется, что я, наверное, не очень четко поставил задачу. Постараюсь уточнить. Есть сервер на .Net, при подключении к нему, клиентские приложения проходят авторизацию. Нужно чтобы сервер ограничивал количество одновременно авторизирированных пользователей согласно количеству купленных лицензий. (если купоено 30 лицензий, то при попытке аворизироваться 31м — отвечать ему отказом)
Клиент логинится на сервере, получает некий токен/хеш, который потом, при каждом вызове сервера, передает с вызовом. Отслеживая токены можно трэкать кол-во одновременных пользователей. Если связь с серверов через WCF, то токен можно прозрачно передавать с помощью кастомного behavior.
После окончания работы, клиент делает log off. Нужно еще отслеживать отвалившихся по ошибке клиентов.
Здравствуйте, ARMSoft, Вы писали:
ARM>Здравствуйте, vladpol, Вы писали:
V>>Что мне кажется, что я, наверное, не очень четко поставил задачу. Постараюсь уточнить. Есть сервер на .Net, при подключении к нему, клиентские приложения проходят авторизацию. Нужно чтобы сервер ограничивал количество одновременно авторизирированных пользователей согласно количеству купленных лицензий. (если купоено 30 лицензий, то при попытке аворизироваться 31м — отвечать ему отказом)
ARM>Клиент логинится на сервере, получает некий токен/хеш, который потом, при каждом вызове сервера, передает с вызовом. Отслеживая токены можно трэкать кол-во одновременных пользователей. Если связь с серверов через WCF, то токен можно прозрачно передавать с помощью кастомного behavior. ARM>После окончания работы, клиент делает log off. Нужно еще отслеживать отвалившихся по ошибке клиентов.
Количество клиентов я знаю (на сервере есть коллекция залогиненых пользователей). А где и как хранить заданное количество клиентов? Пока смотрю в сторону электронных ключей.
С уважением, Владислав Полищук
Re: Реализовать лицензироование .Net сервер
От:
Аноним
Дата:
22.03.10 08:34
Оценка:
Здравствуйте, vladpol, Вы писали:
V>Никогда не занимался, подскажите что почитать. Стоит задача: есть сервер приложений на .Net, к нему (в том числе и через интернет ) подключаются клиентские приложения. Нужно реализовать чтобы сервер позволял подключаться только определенному числу клиентов (согласно количеству купленных лицензий). Спасибо
Здравствуйте, vladpol, Вы писали:
V>Здравствуйте, ARMSoft, Вы писали:
ARM>>Здравствуйте, vladpol, Вы писали:
V>>>Что мне кажется, что я, наверное, не очень четко поставил задачу. Постараюсь уточнить. Есть сервер на .Net, при подключении к нему, клиентские приложения проходят авторизацию. Нужно чтобы сервер ограничивал количество одновременно авторизирированных пользователей согласно количеству купленных лицензий. (если купоено 30 лицензий, то при попытке аворизироваться 31м — отвечать ему отказом)
ARM>>Клиент логинится на сервере, получает некий токен/хеш, который потом, при каждом вызове сервера, передает с вызовом. Отслеживая токены можно трэкать кол-во одновременных пользователей. Если связь с серверов через WCF, то токен можно прозрачно передавать с помощью кастомного behavior. ARM>>После окончания работы, клиент делает log off. Нужно еще отслеживать отвалившихся по ошибке клиентов.
V>Количество клиентов я знаю (на сервере есть коллекция залогиненых пользователей). А где и как хранить заданное количество клиентов? Пока смотрю в сторону электронных ключей.
RSA, приватным ключом шифруете лицензию, где указаны все данные. На сервере устанавливаете лицензию (реестр, файл, etc.), расшифровываете публичным ключом, контролируете кол-во подключений. Проблема не ясна.
Здравствуйте, Аноним, Вы писали:
А>>посмотрите http://www.eziriz.com/ — недорогой инструмент для защиты и лицензирования
А>А бесплатного ничего такого нет?