В соответствии с вашими требованиями, что методология лицензирования «сделает работу» и предотвратит злоупотребление лицензиями низкого уровня », я бы лично рекомендовала не слишком увлекаться;то есть, чтобы избежать использования веб-активированного / поддерживаемого лицензирования.Мой совет будет похож на подход, изложенный здесь .
- Выберите алгоритм симметричного шифрования, используя одну из библиотек .NET, как описано в приведенной выше ссылке.
- Создание необходимого ключа шифрования с использованием генератора случайных чисел (если вы обратитесь ко мне, я с удовольствием поделюсь фрагментом кода, который я разработал для генерации различных случайных строк / ключей для ключа любого требуемого размера), также естьКлассы .NET, которые помогут вам сделать это самостоятельно, генерируя псевдослучайные числа (
RNGCryptoServiceProvider
). - Преобразование / 'custom-hash' ключ для предоставления нового 'хешированного ключа шифрования'.
- Используйте этот ключ для создания вектора инициализации (IV) и шифрования файла лицензии.
Способ развертывания приложения (с точки зрения лицензирования) зависит от вас.Два приведенных ниже метода будут работать для всех трех типов приложений, указанных выше, и обеспечат некоторую степень согласованности при лицензировании каждого из ваших продуктов.Вышеуказанный метод использует два файла для лицензирования.«ProductKey.myExtension» и «LicenceFile.myOtherExtension».Первый содержит случайно сгенерированный ключ, который будет «хеширован» / преобразован так же, как и в приложении генератора лицензий (вам потребуется отдельное (маленькое) приложение для «вырезания» / создания файлов лицензии).Второй - зашифрованный файл с информацией о пользователе, сроком действия лицензии и т. Д.
A.Теперь вы можете предоставить установочный пакет для вашего приложения, который установит ваше приложение в соответствующий каталог (например, C: \ Pogram Files и т. Д.), Не предоставляя файлы лицензии, и в этом случае вы можете развернуть файлы лицензии с помощью установщика лицензии.Затем лицензию можно установить отдельно для каждого пользователя, использующего «Environment.SpecialFolder», чтобы каждый пользователь имел собственную лицензию (конечно, это предполагает, что «Администратор» установил приложение в первую очередь для всех пользователей и что пакет установки лицензии установлен).будет запускаться на индивидуальной основе).Примечание. В настоящее время я не знаком с приложениями WP7 и особенностями этого случая.
B.Второй способ - разрешить отдельным пользователям устанавливать приложение и устанавливать соответствующие файлы лицензий после установки приложений.
Я развернул несколько приложений WinForm, используя эту методологию, после продолжительного периода исследований, и, похоже,хорошо работать.Я надеюсь, что это поможет.