我们正在使用ClickOnce将.NET WPF应用程序部署到beta测试人员。我们想要设置一个到期日期,之后应用程序不再打开。第一次安装的固定日期或x天都可以。试用后,我们要求用户从他们的计算机上取消应用程序。如果他们不这样做,我们希望应用程序不再打开。
具体要求:
我在寻找是否有一些现成的解决方案(非常常见),至少是一些基本的机制来开始工作。
答案 0 :(得分:3)
我在项目(*)中使用了Rhino Licensing,它似乎涵盖了大多数用例。有关教程Here,Rhino code on GitHub
,请参阅Rhino code direct download (zip)但是,如果某人有足够的决心,那么您可以使用 来阻止他们使用您的代码
Rhino的工作原理是为您的用户生成一个许可文件,该文件中包含与日期相关的信息。这是加密签名的,应用程序代码验证它是好的。但是,所有需要被击败的都是修改你的代码以取出电话,说明许可证是好还是坏。
我修改代码的人的解决方案是“继续执行”,因为我将使用无法重复的数字证书对我的代码进行签名。所以我总是说“嘿,这是真正的代码,如果你的代码不匹配,那么有人做了什么来修改它?”。低级恐惧的东西,但没有什么可以做的,只能站在每个用户身上并让他们做的事情。
(*)我确实从基本代码开始,然后将其中的废话砍掉以获得符合我的愿望的东西。
答案 1 :(得分:0)
实际上,您希望控制已安装应用程序的功能和/或生命周期。您所描述的是" Software License Management。"你是对的,这是一个非常常见的业务要求,但通常任何现成的解决方案都会花费你的钱。 "开源软件许可证管理"会有点矛盾。
如果你开发的应用商店"环境,如Windows 8或任何移动平台,通常为您提供许可证管理API,紧密集成到应用程序商店环境中。但对于常规的Windows桌面应用程序,您必须支付费用。用于商业解决方案,或开发自己的解决方案。
如果没有免费的现成解决方案,您可以找到一些文章here和there,这些文章可能会让您指出正确的方向,以实施您自己的解决方案。
答案 2 :(得分:0)
您可以创建一个隐藏文件,您可以在第一次启动应用程序的日期并在代码中配置试用期