Шаг 112 - Лицензирование элементов ActiveX (основы)

Сразу можно сказать, что любая защита может быть сломана, тем более стандартная. Но здесь есть и один хороший момент. Если за взлом Вашего элемента кто-то взялся, значит он того стоит. Итак, для того, чтобы Ваш элемент мог быть создан контейнер должен обратиться к фабрики классов (IClassFactory), современные средства разработки и каркасные библиотеки скрывают этот факт. Подробнее о IClassFactory можете почитать "Шаг 25 - Создаем класс фабрики классов". Если о лицензировании нет речи то объект будет создан. Но вот если лицензирование есть, то сначала будет проверка на соблюдения условия лицензирования. Если условие выполнено то объект будет создан иначе извините. По умолчанию проверяется наличие лицензионного файла LIC. В этом файле находиться некоторый код или строка которая сверяется для установки права на создание объекта. Если файла нет или строка не та, то естественно что объект не будет создан. Сам интерфейс IClassFactory не поддерживаниет лицензирования. Для реализации лицензирования был создан более современный интерфейс IClassFactory2. Название он получил такое то есть цифру исходя их правил COM читайте "Шаг 98 - Правила COM и интерфейсы". Отсюда правило. Если Ваш элемент хочет поддерживать лицензирование то он должен реализовывать интерфейс IClassFactory2. Лицензирование бывает двух типов. На этапе разработки и на этапе выполнения. Все просто. При разработке у Вас должен быть этот файл. Контейнер должен его запомнить и нечего больше не надо, иначе Вам придется поставлять этот файл. Ну а на этапе выполнение это проверка существования корректности LIC файла. Выводы - номер лицензии храниться где то внутри объекта. Мне лично кажется что данная схема совсем что то простая. Ее можно было реализовать и самому. Проверить наличия файла на диске и его содержимого не проблема. Можно проверять и записи в реестре. Но такая технология есть и мы о ней знаем.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 08.09.2001