我使用C#在WPF中开发了一个应用程序,现在问题是我希望我的应用程序作为许可版本,前30天它应该是免费的,即试用版所以现在当它完成时它应该弹出一个窗口说该试验已完成激活,如果用户单击“是”,则会出现带有电子邮件ID文本框的窗口,如果给出了电子邮件ID,则应生成产品密钥并发送到指定的邮件ID。
如何实现它请提前帮助。
答案 0 :(得分:5)
没有开箱即用的方法(尽管有SDK可以购买,为你做这件事)。一般关注的是:
关于要点的一些选择/想法是:
如果您的功能数量有限(或者只是许可或不许可),将详细信息编码到密钥中就足够了。 Base32编码通常将产生具有合理比特量的易于重新键值以编码用户数等。如果您有更多数据要编码(许多可授权的功能),那么“密钥”可能会更成问题。在过去,我使用的密钥除了作为可下载的xml文件的关联之外什么都不做,该文件具有非常详细的功能细分。
根据您的应用程序,您可以存储在文件系统,注册表或数据库中。可能值得尝试许可证来解决系统问题,例如主板ID,数据库详细信息等。
我的首选是使用在线激活和数字签名来确保数据不被篡改。显然,您也可以尝试将防篡改内容编码为密钥作为校验和位。你还需要关注那些将时钟移回时间的人,你可以做一些事情,例如每次X发布时检查互联网时间提供商,以确保他们的时间在时区的X分钟内。此外,当前日期/时间是否在上一个发布日期/时间之前。
这完全取决于你。您可以在启动时显示一个对话框,将人员推送到您的许可证购买页面。或者(可能更适合转换,但更难编码)是禁用某些(关键)功能以鼓励人们升级,但如果没有,他们仍然有一个半功能的应用程序。
尽管如此,无论你做什么,总会找到一种方法来规避你的许可,如果他们真的想要(只要问问微软或Adobe的话)。所以这是一个问题,你想投入多少时间来编写聪明的许可机制,而不是人们绕过它而导致的销售损失成本与真正的客户授权你的应用程序是多么容易(就好像你太难了会让人们不再买。)
希望有所帮助。