Лицензирование сборок WPF, Silverlight и WP7 - PullRequest
3 голосов
/ 30 декабря 2011

Я ищу решение для лицензирования сборок WPF, Silverlight и WP7.Рассматриваемая сборка - это элемент управления диаграммы, который имеет единый API для использования на разных платформах.Я нахожусь в процессе создания отдельного MSI для каждой платформы (WPF, SL, WP7), который пользователи смогут загрузить и установить.Это зарегистрирует сборки в их GAC для использования в разработке.

Что я хотел бы сделать, так это убедиться, что одна лицензия на разработку используется только одним разработчиком.Это не должно быть супер-безопасным, просто достаточно, чтобы удержать потенциальных хакеров.В идеале было бы полезно решение, охватывающее все три платформы.

У меня уже есть кроссплатформенный обфускатор, которым я очень доволен.Жаль, что это не включает лицензирование!

Редактировать: Дополнительные требования состоят в том, что я буду позволять пользователям загружать обновления в течение одного года с даты покупки, однако купленные ими сборки будутдоступны для их использования на неопределенный срок независимо от того, обновляются они или нет.Сборки должны распространяться, поэтому любая модель лицензирования должна распространяться на платформах WPF / SL / WP7.

Ваши предложения / комментарии приветствуются.

С уважением,

1 Ответ

1 голос
/ 18 января 2012

В соответствии с вашими требованиями, что методология лицензирования «сделает работу» и предотвратит злоупотребление лицензиями низкого уровня », я бы лично рекомендовала не слишком увлекаться;то есть, чтобы избежать использования веб-активированного / поддерживаемого лицензирования.Мой совет будет похож на подход, изложенный здесь .

  1. Выберите алгоритм симметричного шифрования, используя одну из библиотек .NET, как описано в приведенной выше ссылке.
  2. Создание необходимого ключа шифрования с использованием генератора случайных чисел (если вы обратитесь ко мне, я с удовольствием поделюсь фрагментом кода, который я разработал для генерации различных случайных строк / ключей для ключа любого требуемого размера), также естьКлассы .NET, которые помогут вам сделать это самостоятельно, генерируя псевдослучайные числа (RNGCryptoServiceProvider).
  3. Преобразование / 'custom-hash' ключ для предоставления нового 'хешированного ключа шифрования'.
  4. Используйте этот ключ для создания вектора инициализации (IV) и шифрования файла лицензии.

Способ развертывания приложения (с точки зрения лицензирования) зависит от вас.Два приведенных ниже метода будут работать для всех трех типов приложений, указанных выше, и обеспечат некоторую степень согласованности при лицензировании каждого из ваших продуктов.Вышеуказанный метод использует два файла для лицензирования.«ProductKey.myExtension» и «LicenceFile.myOtherExtension».Первый содержит случайно сгенерированный ключ, который будет «хеширован» / преобразован так же, как и в приложении генератора лицензий (вам потребуется отдельное (маленькое) приложение для «вырезания» / создания файлов лицензии).Второй - зашифрованный файл с информацией о пользователе, сроком действия лицензии и т. Д.

A.Теперь вы можете предоставить установочный пакет для вашего приложения, который установит ваше приложение в соответствующий каталог (например, C: \ Pogram Files и т. Д.), Не предоставляя файлы лицензии, и в этом случае вы можете развернуть файлы лицензии с помощью установщика лицензии.Затем лицензию можно установить отдельно для каждого пользователя, использующего «Environment.SpecialFolder», чтобы каждый пользователь имел собственную лицензию (конечно, это предполагает, что «Администратор» установил приложение в первую очередь для всех пользователей и что пакет установки лицензии установлен).будет запускаться на индивидуальной основе).Примечание. В настоящее время я не знаком с приложениями WP7 и особенностями этого случая.

B.Второй способ - разрешить отдельным пользователям устанавливать приложение и устанавливать соответствующие файлы лицензий после установки приложений.

Я развернул несколько приложений WinForm, используя эту методологию, после продолжительного периода исследований, и, похоже,хорошо работать.Я надеюсь, что это поможет.

...