我正在寻找一种解决方案来许可 WPF、Silverlight 和 WP7 程序集。所讨论的程序集是一个图表控件,它具有可跨平台使用的单个 API。我正在为每个平台(WPF、SL、WP7)创建一个单独的 MSI,用户可以下载并安装。这将在其 GAC 中注册程序集以供开发使用。
我想做的是确保单个开发许可证仅由单个开发人员使用。它不必非常安全,足以阻止潜在的黑客即可。理想情况下,覆盖所有三个平台的解决方案将是有益的。
我已经有了一个令我非常满意的跨平台混淆器。可惜这不包括许可!
Edit:额外的要求是,我将允许用户下载自购买之日起最多一年的更新,但是他们购买的组件将无限期地可供他们使用,无论他们是否更新。程序集将被重新分发,因此任何许可模型都必须可在 WPF/SL/WP7 平台上重新分发。
欢迎您提出建议/意见。
此致,
对于您对许可方法“将“完成工作”并防止低级许可证滥用”的要求,我个人建议不要太花哨;也就是说,避免使用网络激活/维护的许可。我的建议与概述的方法类似here https://stackoverflow.com/questions/8907751/how-to-license-my-c-sharp-application/8908329#8908329.
- 使用上面链接中所述的 .NET 库之一选择对称加密算法。
- 使用随机生成器创建所需的加密密钥(如果您联系我,我很乐意分享我开发的一段代码,用于为任何所需的密钥大小生成各种随机字符串/密钥),还有 .NET 类可以帮助您通过生成伪随机数自己完成此操作(
RNGCryptoServiceProvider
).
- 转换/“自定义哈希”密钥以提供新的“哈希加密密钥”。
- 使用此密钥生成初始化向量 (IV) 并加密您的许可证文件。
现在如何部署应用程序(就许可而言)取决于您。以下两种方法适用于上述所有三种应用程序类型,并将为每种产品的许可提供一定程度的一致性。上述方法使用两个文件进行许可。 “ProductKey.myExtension”和“LicenceFile.myOtherExtension”。第一个包含随机生成的密钥,它将以与许可证生成器应用程序相同的方式进行“散列”/转换(您将需要一个单独的(小)应用程序来“剪切”/创建许可证文件)。第二个是包含用户信息、许可期限等的加密文件。
答:您现在可以为您的应用程序提供一个安装包,该安装包会将您的应用程序安装在相关目录(即 C:\Pogram Files 等)中,而无需提供许可证文件,在这种情况下,您可以使用许可证安装程序部署许可证文件。然后可以使用“Environment.SpecialFolder”为每个用户单独安装许可证,以确保每个用户都有自己的许可证(当然,这假设“管理员”首先为所有用户安装了该应用程序,并且许可证安装包将在逐个用户的基础上运行)。注意:我目前不熟悉 WP7 应用程序以及本例中的具体情况。
B. 第二种方式是允许个人用户安装应用程序,并在安装应用程序时安装相关的许可证文件。
经过一段时间的广泛研究后,我已经使用这种方法部署了多个 WinForm 应用程序,并且它似乎运行良好。我希望这有一些帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)