我们的客户必须每月支付费用......如果他们不这样做,阻止asp.net软件使用的最佳方法是什么?注意:应用程序在客户端自己的服务器上运行,而不是SaaS应用程序...
我的想法是:
想法:在互联网上托管Web服务,应用程序将使用该服务来了解客户端是否可以使用该软件. 问题1 - 如果客户端互联网失败会发生什么?或者数据中心失败了? 可能的答案:让每个Web服务访问权限发送一个有效期为7或15天的密钥,因此每个Web服务咨询将使软件运行7或15天,这样应用程序将只在7或15之后锁定几天没有咨询我们的网络服务. 问题2 - 如果客户端没有或不想启用对应用程序的Internet访问?
想法2:每月向客户发送密钥. 问题 - 如何制作离线密钥? 可能的答案:使用"限制"日期生成哈希,因此每次登录尝试软件都会将今天的哈希与密钥进行比较? 问题2 - 存放密钥的位置? 可能的答案:数据库(不好,太容易改变),文本文件,注册表,代码文件,汇编......
任何意见将非常感谢!
啊,DRM这个古老的问题.这就是你在这里谈论的内容.坦率地说,你问题的根本答案是:你做不到.无论您对系统做了什么,都可以通过黑客攻击和修改,以便绕过和/或破坏您的DRM身份验证方案.
这是软件开发的一个基本事实:它可以并且将会被盗版.
因此,您的问题的答案是,您必须相信客户向您支付您确定的正确费用(在这种情况下这是合同的全部要点).
您采取的任何其他行动都会给付费客户带来困难和烦恼,并有可能侵蚀您的客户群.
现在,如果您想要按照所描述的性质控制您的软件,那么就不要将它提供给用户在自己的服务器上运行.强迫他们成为SaaS.通过这种方式,您可以控制所有这些.但这是唯一的方法.
你似乎没有想到的东西,但我看到网络不允许任何类型的"拨号家庭"解决方案,因为大多数系统是内部关注的,因此这些内部服务器不允许联系外部互联网.完全没有.即使允许他们访问也被视为安全风险.你会如何处理这些网络?
坦率地说,如果我是客户,并且我支付了我的费用来许可你的软件(我在我自己的设备上安装),如果我不得不允许该设备访问互联网以使其工作,我会感到愤怒.如果有问题的软件是任何类型的财务管理,客户管理,人力资源管理,质量管理,库存管理,销售,或者只是与我的业务,客户或员工相关的任何事情.当我的业务相关数据保存在他们的软件中时,我不相信软件开发人员能够让他们的软件与其他东西交谈.
最后,您所描述的是与付费客户采取对抗的方式.如果您不相信我,请查看UbiSoft针对其最新客户讨厌的DRM计划所做的评论.
国际海事组织,你有两条好路:
去SaaS
确保您的合同有一定的不付款