许可WPF,Silverlight和WP7程序集

时间:2011-12-30 18:10:31

标签: wpf silverlight windows-phone-7 licensing

我正在寻找一个许可WPF,Silverlight和WP7程序集的解决方案。有问题的程序集是一个图表控件,它有一个API可供跨平台使用。我正在为每个平台(WPF,SL,WP7)创建一个单独的MSI,用户可以下载和安装。这将在GAC中注册程序集以供开发使用。

我想要做的是确保单个开发许可证仅由单个开发人员使用。它不一定非常安全,足以阻止潜在的黑客。理想情况下,涵盖所有三个平台的解决方案将是有益的。

我已经拥有了一个我非常满意的跨平台混淆器。遗憾的是,这不包括许可!

编辑:其他要求是我将允许用户从购买之日起下载最多一年的更新,但是他们购买的程序集将无限期地供他们使用,无论他们是否更新。将重新分发程序集,因此任何许可模型都必须可在WPF / SL / WP7平台上重新分发。

欢迎您提出建议/意见。

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

对于您的要求,许可方法“将”完成工作“并防止低级别许可证滥用”我个人建议不要过于花哨;也就是说,避免使用网络激活/维护许可。我的建议与概述here的方法类似。

  1. 使用上面链接中描述的.NET库之一选择对称加密算法。
  2. 使用随机生成器创建所需的加密密钥(如果您与我联系,我很乐意分享我开发的一段代码,以生成各种所需密钥大小的随机字符串/密钥),还有.NET类通过生成伪随机数(RNGCryptoServiceProvider)来帮助您自己完成此操作。
  3. 转换/'自定义哈希'键以提供新的“哈希加密密钥”。
  4. 使用此密钥生成初始化向量(IV)并加密许可证文件。
  5. 您现在如何部署应用程序(在许可方面)取决于您。以下两种方法适用于上述所有三种应用程序类型,并将为您的每种产品的许可提供一定程度的一致性。上述方法使用两个文件进行许可。 'ProductKey.myExtension'和'LicenceFile.myOtherExtension'。第一个包含随机生成的密钥,它将以与许可证生成器应用程序相同的方式进行“散列”/转换(您需要一个单独的(小)应用程序来“剪切”/创建许可证文件)。第二个是带有用户信息,许可证期限等的加密文件。

    一个。您现在可以为您的应用程序提供一个安装包,它将您的应用程序安装在相关目录(即C:\ Pogram Files等)中而不提供许可证文件,在这种情况下,您可以使用许可证安装程序部署许可证文件。然后可以为每个使用“Environment.SpecialFolder”的用户单独安装许可证,以确保每个用户都拥有自己的许可证(当然,这将假设'管理员'在第一个实例中为所有用户安装了应用程序,并且许可证安装包将在逐个用户的基础上运行)。注意:我目前不熟悉WP7应用程序和这种情况下的细节。

    B中。第二种方法是允许个人用户安装应用程序,并在安装应用程序时安装相关的许可证文件。

    在广泛的研究期后,我已经使用这种方法部署了几个WinForm应用程序,它似乎运行良好。我希望这有一些帮助。