我们的客户必须支付每月的费用..。如果没有,阻止asp.net软件使用的最佳方法是什么?注意:应用程序运行在客户端自己的服务器上,它不是SaaS应用程序.
我的想法是:
Idea:在互联网上托管一个Web,应用程序将使用该服务来了解客户端是否可以使用该软件。问题1 -如果客户端网络失败会发生什么?还是数据中心失败?可能回答:让每个web服务访问发送一个密钥,该密钥有效期为7或15天,因此每个web服务咨询都将使软件能够运行7或15天以上,这样应用程序只会在7或15天后才被锁定,而无需咨询我们的web服务。问题2 -如果客户端没有或不希望启用应用程序的internet访问?
Idea 2:每月向客户发送一个密钥。问题-如何制作脱机密钥?可能的答案:使用“限制”日期生成哈希,所以每次登录软件都会比较当前的哈希和密钥?问题2 -在哪里存储密钥?可能的答案:数据库(不太好,太容易更改)、文本文件、注册表、代码文件、程序集.
任何意见都将非常感谢!
发布于 2010-02-26 20:18:14
通常,您提供一个加扰密钥,其中包括一个有效的授权令牌和支付服务的过期日期。然后安装程序将使用这个来“激活”您的软件。不知道如果你有1-2周的时间,你会如何看待这个问题。你会想警告他们即将到期。也不知道如何判断他们是否把自己的时钟调回来了。
总之,没有什么是完美的。
发布于 2010-03-11 16:29:37
我以前处理过这个问题,不可能建立一个完美的系统。你做的任何事都有风险。最好的方法是权衡你的选择,并确定哪种方法被黑客攻击的可能性最小,并且最有可能为客户正确和容易地工作。
就像其他人说的那样,他们可以改变他们的时钟并使许可证检查机制失效。如果您不信任用户,则可以使许可证系统连接到您的服务器。然后,您需要确保他们始终有一个连接到您的服务器,以检查许可证。
如果他们不能访问您的服务器有合理的理由怎么办?
在这种情况下,应该禁用应用程序吗?可能不会。但是,如果他们故意关闭连接呢?然后,您将希望禁用应用程序。
如果你给他们一个月钥匙,你就会增加一个月的烦恼,过一段时间你可能会失去一个客户(人们倾向于和那些容易做生意的人做生意)。
例如:如果您以他们的时钟为基础,并且应用程序由于某种原因需要他们的时钟准确,那么客户就不太可能改变他们的时钟。
发布于 2010-03-17 18:34:00
我同意斯蒂芬的观点,但最终我认为你的合同是你在这里最好的盟友。
如前所述,您不希望给客户带来不便,特别是在部署规模较大的情况下。
至于SaaS,如果我是使用您的产品的客户,而且您说模型正在改变,我们需要从您的服务器访问软件,而我们的服务器必须退役,我就不高兴了。我可能会利用这个机会换包裹。
https://stackoverflow.com/questions/2344507
复制相似问题