.net 如何使WPF应用程序成为30天的试用版,并使用产品密钥进行许可?

.net 如何使WPF应用程序成为30天的试用版,并使用产品密钥进行许可?,.net,wpf,.net,Wpf,我已经使用C#在WPF中开发了一个应用程序,现在的问题是我希望我的应用程序作为许可版本,在前30天它应该是免费的,即。,试用版因此,现在当它完成时,它应该弹出一个窗口,说明试用已完成。激活它,如果用户单击“是”,则会出现一个带有电子邮件id文本框的窗口。如果提供了电子邮件id,则应生成产品密钥并发送到指定的邮件id 如何实现它,请提前帮助,谢谢。没有现成的方法可以做到这一点(尽管有SDK,你可以购买它为你做)。普遍关注的问题是: 您将如何将可授权功能编码到密钥(或其他介质)中 您将在哪里存储这些

我已经使用C#在WPF中开发了一个应用程序,现在的问题是我希望我的应用程序作为许可版本,在前30天它应该是免费的,即。,试用版因此,现在当它完成时,它应该弹出一个窗口,说明试用已完成。激活它,如果用户单击“是”,则会出现一个带有电子邮件id文本框的窗口。如果提供了电子邮件id,则应生成产品密钥并发送到指定的邮件id


如何实现它,请提前帮助,谢谢。

没有现成的方法可以做到这一点(尽管有SDK,你可以购买它为你做)。普遍关注的问题是:

  • 您将如何将可授权功能编码到密钥(或其他介质)中
  • 您将在哪里存储这些数据
  • 您将如何尝试并避免篡改此数据
  • 编写代码以禁用未经许可的内容
  • 关于这些要点的一些选择/想法如下:

  • 如果您的函数数量有限(或者是否刚刚获得许可),那么将细节编码到密钥中就足够容易了。Base32编码通常会产生易于重新设置密钥的值,并使用合理的比特量来编码用户数量等。如果您有更多的数据要编码(许多可授权的功能),那么“密钥”可能会有更多问题。在过去,我使用了一个键,它除了充当可下载xml文件的关联之外没有什么作用,该文件具有非常详细的功能分解

  • 根据您的应用程序,您可以存储在文件系统、注册表或数据库中。它可能值得尝试许可证的一些有关系统,例如主板ID,数据库详细信息等

  • 我通常倾向于使用在线激活和数字签名来确保数据不被篡改。显然,您也可以尝试将防篡改内容作为校验和位编码到密钥中。你还需要关注人们将时钟向后移动的情况,你可以做一些事情,比如每X启动一次,检查一个互联网时间提供商,确保他们的时间在其时区的X分钟之内。另外,当前日期/时间是否早于上一次启动日期/时间

  • 这完全取决于你。您可以在启动时显示一个对话框,将用户推送到您的许可证购买页面。或者(对于转换来说可能更好,但更难编码)是禁用某些(关键)功能以鼓励人们升级,但如果没有,它们仍然有一个半功能的应用程序

  • 综上所述,不管你做什么,如果有人真的想绕过你的许可证,他们总会找到办法(问问微软或Adobe之类的人就知道了)。因此,这是一个你想花多少时间来编写聪明的许可机制的问题,与绕过它的人造成的销售损失的成本,与真正的客户许可你的应用程序有多容易的问题(好像这太难了,你会让人们不买)


    希望这能有所帮助。

    没有现成的方法可以做到这一点(尽管有SDK,你可以买它来帮你)。普遍关注的问题是:

  • 您将如何将可授权功能编码到密钥(或其他介质)中
  • 您将在哪里存储这些数据
  • 您将如何尝试并避免篡改此数据
  • 编写代码以禁用未经许可的内容
  • 关于这些要点的一些选择/想法如下:

  • 如果您的函数数量有限(或者是否刚刚获得许可),那么将细节编码到密钥中就足够容易了。Base32编码通常会产生易于重新设置密钥的值,并使用合理的比特量来编码用户数量等。如果您有更多的数据要编码(许多可授权的功能),那么“密钥”可能会有更多问题。在过去,我使用了一个键,它除了充当可下载xml文件的关联之外没有什么作用,该文件具有非常详细的功能分解

  • 根据您的应用程序,您可以存储在文件系统、注册表或数据库中。它可能值得尝试许可证的一些有关系统,例如主板ID,数据库详细信息等

  • 我通常倾向于使用在线激活和数字签名来确保数据不被篡改。显然,您也可以尝试将防篡改内容作为校验和位编码到密钥中。你还需要关注人们将时钟向后移动的情况,你可以做一些事情,比如每X启动一次,检查一个互联网时间提供商,确保他们的时间在其时区的X分钟之内。另外,当前日期/时间是否早于上一次启动日期/时间

  • 这完全取决于你。您可以在启动时显示一个对话框,将用户推送到您的许可证购买页面。或者(对于转换来说可能更好,但更难编码)是禁用某些(关键)功能以鼓励人们升级,但如果没有,它们仍然有一个半功能的应用程序

  • 综上所述,不管你做什么,如果有人真的想绕过你的许可证,他们总会找到办法(问问微软或Adobe之类的人就知道了)。因此,这是一个你想花多少时间来编写聪明的许可机制的问题,与绕过它的人造成的销售损失的成本,与真正的客户许可你的应用程序有多容易的问题(好像这太难了,你会让人们不买)

    希望这能有点帮助。

    可能的重复