【问题标题】:how to make trial version of win and web application in .Net technology如何用.Net技术制作win和web应用程序的试用版
【发布时间】:2011-01-21 18:18:08
【问题描述】:

如何使用 dotnet 技术开发 Windows 或 Web 应用程序的试用版。因此,用户可以在某天使用该 Windows 或 Web 应用程序,并且在重置他的系统时钟后也将无法使用。如何在 Windows 和 Web 中制作这种类型的试用版。 请给我详细的概念。

谢谢

【问题讨论】:

标签: c# asp.net


【解决方案1】:

通常的方法是一个注册表项,或一组相同的。您跟踪安装日期,一旦过了而用户没有输入密钥,您就设置了一个标志,表明时间到了。您还可以跟踪个人使用情况;在 30 次“启动”后,它会被锁定(防止涉及更改系统时间的变通办法)。知识渊博的人总是可以破解这样的实现,因为他们可以访问和编辑他们的注册表,但它会让 95% 的用户保持诚实。

最简单的方法需要网络服务,这意味着应用程序需要 Internet 连接才能运行(无论如何都没有问题,但您可能难以说服用户某个记事本应用程序需要 Internet 访问权限)。该应用程序将在安装时调用该服务,说明它已在当前日期使用给定的许可证密钥(或默认的“试用”密钥)安装,并要求提供标识安装的 GUID。然后,每次启动时,它都会询问另一个服务是否允许运行。如果您希望您的应用程序受欢迎,您将需要一些强大的后台硬件,因为每次安装启动时都会触发该服务。

【讨论】:

  • +1 很好地描述了概念的优缺点 - 很好地回答了一个有点模糊的问题。 :)
【解决方案2】:

在Windows上实现它的一种方法是加密注册表中的安装日期,并检查系统中最新登录的日期。

这样重置时钟没有任何效果。

【讨论】:

  • 删除注册表项后会发生什么? :) 将日期更改为未来日期,安装,切换回当前日期...
  • 我认为当应用程序由用户运行时会出现问题,如果我将上次登录日期与当前系统日期进行比较,则会出现问题,因为用户可以更改系统日期,然后他可以运行应用程序.实际上我希望如果试用版期限为 15 天,那么用户可以在 15 天内多次运行该应用程序,但 15 天后他将无法运行这些应用程序。请详细说明。
  • 此外,卸载应用程序并运行注册表清理程序通常会清除孤立的注册表项,从而允许用户在每次用完时简单地重新安装应用程序。
【解决方案3】:

这完全取决于您的软件的重要性。为了制作 Web 应用程序的试用版,您可以结合以下机制。

  1. Obfuscate assemblies - 这个 阻止用户 反编译\逆向工程你的 代码并研究如何试用 实现了版本逻辑。

  2. 发布不同版本 - 使用编译器指令维护产品的两个不同版本,即完整版和演示版。这可以防止试用版被破解。

  3. 限制功能 - 假设它是工资单应用程序,限制用户数量,例如 10 或 20 之间。假设它是 BI 应用程序,然后在生成的图表和报告中嵌入水印。接下来,您可以限制每天的登录次数或限制主要功能每天使用的次数超过特定次数。

  4. 配置存储 - 将试用版计数器相关数据存储在加密文件中,并单独保存该文件的哈希值。每次写入文件后更新哈希,并在从文件读取之前验证哈希。还要确保试用版配置文件的创建日期与任何其他程序文件的创建日期相同,以防止被替换为新的,从而重置计数器。

这里有几个来自 SO 在同一个查询中的链接。

  1. Implementing a 30 day time trial

  2. https://stackoverflow.com/questions/981294/copy-protection-tool-to-limit-number-of-units/2025926#2025926

【讨论】:

  • 当完整版可以分发给非授权用户时,如何维护不同的版本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 2011-01-01
相关资源
最近更新 更多