软件授权有效期验证,C#如何来实现?

x4177c 2016-01-16 01:16:04
公司最近要做一个软件的授权系统,正在开发客户端的有效期验证功能,使用获取本地时间与授权的开始结束时间比较,如果超过这个时段就代表软件已过使用期,
但想想用户可以自己把时间给改了,如果通过判断本地机时间恐怕不行,后来想到用互联网的标准时间,但我们的用户都是企业用户都不允许上外网,这个办法也被否定了,
现在是思不出办法来确定当前时间,当前时间不能定,有效期验证就不能实现了,小弟请求各位牛人,使用.net是否可以取得准确的当前时间?
...全文
1430 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kxyzjm62 2016-01-16
  • 打赏
  • 举报
回复
在Microsoft.Win32命名空间中有一个SystemEvents类,我们只要定制它的一个静态事件TimeChanged就OK了!! 代码片断如下: private void Form1_Load(object sender, System.EventArgs e) { //定制事件 SystemEvents.TimeChanged += new EventHandler(SystemEvents_TimeChanged); } //事件处理函数 private void SystemEvents_TimeChanged(object sender, EventArgs e) { MessageBox.Show("系统时间被改变了,现在时间为:" + DateTime.Now.ToString()); }
kxyzjm62 2016-01-16
  • 打赏
  • 举报
回复
SysInfo控件
x4177c 2016-01-16
  • 打赏
  • 举报
回复
嗯,都有道理! 我们也在想想,看看这个授权应当被定义成什么程度就可以了,可能不是技术能解决全部问题,还是要有其它的策略和手段制约。
cs1438250 2016-01-16
  • 打赏
  • 举报
回复
注册表计时。 操作日志暗存,有新操作时间在旧操作之前的。 程序自己计数,加密存一个文件。 没办法有的客户不想给尾款的。
  • 打赏
  • 举报
回复
引用 楼主 xuchao4177 的回复:
现在是思不出办法来确定当前时间,当前时间不能定,有效期验证就不能实现了,小弟请求各位牛人,使用.net是否可以取得准确的当前时间?
非常情况下,你不需要取得准确当前时间。你只要记录状态就可以了。例如假设一个人使用机顶盒,他连续4次都看了2016年1月的电影,那么当他地5此看电影却是2015年12月的记录,那么客户端系统就可以报警了。报警可以暗中的,也可以明的,甚至一些芯片自毁。
  • 打赏
  • 举报
回复
首先,你要确定一下是不是用户的环境都不能上外网(连时间校准都不允许)。判断一下用户是不是在刁难你们,或者是不是你们负责跟用户接洽的人出现了操作失误反而是搞砸了项目。 其实,你们在企业内部放一个自己的服务器,并且自己有权利每天登录自己的服务器,有什么不可以?也还是要从上面两点去考虑。 最后才是不得不做的错误。你们可以在每一次更新版本时,都以不同的方式在终端埋下“后门”,例如每隔1小时就监测一次用户使用状态,然后网络一旦通了就传给内部服务器、甚至外部服务器。同时要提前制定如何秘密对用户提起诉讼,取证的计划。
Forty2 2016-01-16
  • 打赏
  • 举报
回复
并不是所有的需求都要通过技术实现的。 1、企业用户不一定会故意违约,你这方面可以提供好的到期警告和过期通知,以便客户续约。 2、企业用户违约,法理上是需要背负赔偿你们损失的责任的。 3、更改系统时间,对用户的日常操作也会造成麻烦。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧