我已经使用 C# 在 WPF 中开发了一个应用程序,现在的问题是我希望我的应用程序作为许可版本,前 30 天它应该是免费的,即试用版,所以现在当它完成时,它应该弹出一个窗口,说试用版是完成激活它,如果用户单击“是”,则会出现一个带有电子邮件 ID 文本框的窗口,如果给出电子邮件 ID,则应生成产品密钥并将其发送到指定的邮件 ID。
如何实现,请帮忙提前致谢。
没有开箱即用的方法可以做到这一点(尽管您可以购买可以为您做到这一点的 SDK)。人们普遍关心的问题是:
- 您将如何将可许可的功能编码到密钥(或其他介质)中?
- 您将在哪里存储这些数据?
- 您将如何尝试避免篡改这些数据?
- 如果未获得许可,则编写代码以禁用您想要的功能
关于这些点的一些选项/想法是:
如果您的功能数量有限(或者只是获得许可或未获得许可),那么将详细信息编码到密钥中就很容易了。 Base32 编码通常会产生易于重新设置密钥的值,并具有合理的位数来对用户数量等进行编码。如果您有更多数据需要编码(大量可授权功能),那么“密钥”可能会出现更多问题。过去,我使用的密钥除了充当与可下载 xml 文件的关联之外没有任何作用,该文件具有非常详细的功能细分。
根据您的应用程序,您可以存储在文件系统、注册表或数据库中。尝试获得有关系统的某些信息(例如主板 ID、数据库详细信息等)的许可证可能是值得的。
我的一般偏好是使用在线激活和数字签名来确保数据不被篡改。显然,您还可以尝试将防篡改内容作为校验和位编码到密钥中。您还需要关注人们将时钟调慢,您可以执行一些操作,例如每次 X 启动时检查互联网时间提供商,以确保他们的时间与所在时区的时间相差在 X 分钟之内。此外,当前日期/时间是否早于上一个启动日期/时间。
这完全取决于你。您可以在启动时显示一个对话框,将人们推送到您的许可证购买页面。或者(可能更适合转换,但更难编码)是禁用某些(关键)功能以鼓励人们升级,但如果不这样做,他们仍然拥有半功能应用程序。
话虽如此,无论您做什么,如果有人真的想的话,总会找到一种方法来规避您的许可(只需询问 Microsoft 或 Adobe 之类的公司即可)。因此,问题在于您想投入多少时间来编写巧妙的许可机制,与规避该机制的人造成的销售损失成本,以及真正的客户许可您的应用程序有多容易(就好像这对您来说太难了)会让人们不再购买)。
希望能有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)