Необходимо разработать механизм активации

Александр16 років у сервісі
Дані замовника будуть вам доступні після подання заявки
18.09.2012

Для начала опишу текущий механизма активации.

Процесс активации:

User посылает запрос на активацию, содержащий код активации (который он покупает) и HardwareID компьютера Userа

Server проверяет в базе – если там есть код активации, присланный USERом, и он свободен (то есть ему ещ е не присвоен HardwareID), то сервер присваивает этому коду HardwareID и в последствии считает данный код активации занятым.

Процесс проверки активированности на данном железе:

User посылает запрос, содержащий его hardwareID

Server проверяет в базе:

Есть ли там такой hardwareID и если он там присутствует,

То server возвращает true (активирован), иначе false (не активирован)

С такой моделью возникают следующие проблемы:

Из за ошибок при определении hardwareID (насколько я понял это могут быть ошибки инициализации WMI, по крайней мере в некоторых случаях так было), он (то есть hardwareID) оказывается пустым или неуникальным, причем такое происходит в 20% случаев.

Моя функция получения hardwareID может выдавать разные значения при наличии или отсутствии съемного оборудования вроде картридера, дополнительного диска и т д (очень неудобно). Соответственно получается – юзер активировал прогу, нормально работает с ней, а затем подкинул к компу съемный диск и все – HardwareID поменялся (и он неактивирован).

При отправке запросов POST методом иногда возникают проблемы следующего характера: прокси, установленная на компе, не поддерживает POST, (еще возможно) провайдер ( или firewall) блокирует POST данные.

Ваша задача. Сделать механизм активации, работающий в 100% случаев (на любых системах windows, то есть XP, Vista, Windows 7, Windows 8, причем как на 32, так и на 64 разрядных). Саму общую схему можно оставить такой же (можете и свою предложить, но важный нюанс – механизм должен действовать полностью автоматизировано, чтобы пользователь покупал код активации и активировал совершенно без моего участия).

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

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

================

Мои предыдущие функции для определения идентификаторов железа прилагаю (2 варианта). Обратите внимание – и в первом, и во втором вариантах основной проблемой является то, что выдаваемый идентификатор часто меняется (при том что юзер ничего не менял из железа на компе, или всего лишь подключал съемные устройства вроде съемного диска, наушников и т.д.). Также идентификатор меняется при установке Windows.

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

Заявки фрілансерів