【发布时间】:2014-05-21 08:47:45
【问题描述】:
我们正在使用 ClickOnce 为 beta 测试人员部署 .NET WPF 应用程序。我们想设置一个过期日期,在此之后应用程序不再打开。第一次安装后的固定日期或 x 天都可以。试用后,我们要求用户从他们的计算机上卸载应用程序。如果他们不这样做,我们希望该应用不再打开。
具体要求:
- 无法通过重新安装或任何其他方式重置时间
- 该应用也应离线运行,无需访问互联网,因此每次运行应用时检查 Web 服务器并不是最佳解决方案
- 应用的后续更新不会影响到期日期
- 我们希望能够通过向用户发送新的激活码或类似的方式随时延长试用期
我正在寻找一些现成的解决方案来解决这个(很常见的)事情,至少有一些基本的机制可以开始工作。
【问题讨论】:
-
这听起来很难执行 - 您可能只能做出最佳尝试来执行此操作,因为客户端可以控制自己的机器并最终可以绕过您的应用程序包含的任何保护.返回身份验证令牌的 Web 服务可以工作,但您需要唯一标识目标机器,并防止用户复制 Web 服务响应和激活。在某处(注册表)添加标记可能会劝阻普通用户,但技术用户可以找到并删除密钥,从而允许另一个试用期。
-
听起来很多控件仅用于 beta 测试。目的是什么?如果这是一项收入问题,那么为什么不保留关键功能或限制某些功能。
-
Charleh,链接很好,看起来符合我们的要求。
-
Blam,这不是收入的事情。我们希望公开所有功能以进行测试。我们只是不希望任何早期版本的软件“挂”在任何人的计算机上。我们现在看起来也很彻底,因为无论如何我们在发布版本中都需要一个许可证控制系统,如果它以同样的方式工作会很好。