找回密码
 立即注册

QQ登录

只需一步,快速开始

夏雪冬阳

银牌会员

280

主题

1139

帖子

3927

积分

银牌会员

积分
3927

微信认证勋章

夏雪冬阳
银牌会员   /  发表于:2022-4-3 22:52  /   查看:2464  /  回复:16
10金币
需求场景:准备用活字格开发一套系统,初步沟通后,对方有按年付费的倾向,想请问大佬们,怎么限制系统的使用时间,比如一年到期了,对方交完费后,解除限制,继续使用。

最佳答案

查看完整内容

这可是小孩没娘,说来话长了 在早年哪,是封在程序里的,就是在代码里判断一下,取一下当前时间,和你的截至时间比较一下,如果小呢,就正常执行,如果大呢,就跳转到让人付钱的页面。 但是你仔细一想,会发现这个事儿没那么简单。你要做两件事: 1.取当前时间 2.与截至时间比较 先说取当前时间,你从哪儿取啊?取服务器时间吗?你系统部署在哪儿?客户的服务器上吗?他要把服务器时间改了不是就能无限制的用了吗?你 ...

16 个回复

倒序浏览
最佳答案
最佳答案
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-4-3 22:52:11
来自 3#
这可是小孩没娘,说来话长了

在早年哪,是封在程序里的,就是在代码里判断一下,取一下当前时间,和你的截至时间比较一下,如果小呢,就正常执行,如果大呢,就跳转到让人付钱的页面。

但是你仔细一想,会发现这个事儿没那么简单。你要做两件事:

1.取当前时间
2.与截至时间比较

先说取当前时间,你从哪儿取啊?取服务器时间吗?你系统部署在哪儿?客户的服务器上吗?他要把服务器时间改了不是就能无限制的用了吗?你说了,那不会,他把时间改了,生成数据的时间就与生产实际不一致了,他数据就乱了。你要是登录的时候改系统时间,登进去再改回来呢?

我先说答案吧,用户打算改服务器时间这条道,在活字格上行不通。你要敢改时间,服务端就直接报错了

【5】生产服务器无法登录,急!!!!!!! - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)

但是,此项未经官方证实,你要是想在生产服务器上用,最好跟官方证实一下。

这条道通了,那就别想着再从别的服务器上取时间了,你还要把时间做成一个服务,这更麻烦。简单说吧,你在另外一台你能控制的机器上,再部署一个活字格,用服务端命令,取一下时间,把这个命令通过 API 的方式暴露出去,让用户的生产服务器能访问就行了。

不管怎么样,反正取当前时间是可以做到的。

第二个,与截至时间比较。你截至时间放在哪儿?

放数据库里?你数据库放哪儿?放用户的服务器上?还是那个问题,你怎么控制用户不能直接改数据库呢?

当然,办法当然是有,数据库有触发器呀,你用触发器监听这个字段值不就行了,只要这个值被改了,你就用触发器取数据库服务器的当前时间,再改回来就行了。

有了这个思路,你在服务器上再分出一个库来,就专门放这个时间,如果可能,再加个日志,一年后再跟客户谈的时候,你这得加钱,你一年改了我授权截至时间四十多万次,你这太鸡贼了这得加钱。你不承认?那你近前看端详,你修改时间良心丧,这日志就押在了某的硬盘上!

除了数据库这个办法,别的行吗?

其实你想啊,就仨地儿,数据库、前端、后端。就这三个地方。对于活字格来说,前端就是页面了,你找哪个页面,比如登录页,隐藏单元格里直接写个时间,然后比较一下 Now(),判断大小就行了

后端?后端也行啊,写个服务端命令,设置变量,把截至时间存成一个变量。

但是吧,你放页面上,哪怕是隐藏的行列里,其实内容也是发送到浏览器里了,你按 F12 开发者工具,仔细查找是能找着的

【7】隐藏区放的内容会不会不安全啊? - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)

但是,放在前端,其实是个三体模型,你只要不对外广播,谁能想到你把验证就放在前端了呢?

好了,这个问题解决了,可是事儿还没完,一年后,客户给你续费了,你可咋整?

如果截至时间放成前后端,你还得发布一遍才能把时间改过来。

放数据库里,你也要手工改一下吧?

怎么能自动的就改了呢?

放许可文件啊,到期了让客户更新一下许可文件啊

要是觉得这太LOW了,你就要考虑自己搭个授权服务器了,我之所以没提前说这个办法,一个是太麻烦,成本太高,另一个,客户在内网不能访问公网就歇了。不过,如果客户在内网不能访问公网,其实到时间客户续费了,你再给他一个离线包也没问题。

如果客户能上云,那就好办了呀,直接丢到活字格云上,这事儿胡爷办的可利索了,大家都省事,活字格云上开通一年就行了,还要什么自行车

评分

参与人数 3金币 +71 满意度 +5 收起 理由
Joe.xu + 5 很给力!
David.Zhong + 66
一鹏 + 5

查看全部评分

回复 使用道具 举报
fans0123
金牌服务用户   /  发表于:2022-4-3 23:54:58
2#
我觉得几个关键菜单命令中判断日期小于某个值才继续往下执行就实现了吧。
回复 使用道具 举报
放下活字格认证
高级会员   /  发表于:2022-4-4 08:46:22
4#
就相当于,活字格云直接可以控制 授权时间只是把服务器时间绑定应用上
回复 使用道具 举报
夏雪冬阳
银牌会员   /  发表于:2022-4-4 09:39:44
5#
补充,系统发布在对方公司内网服务器上,这个要控制的话不容易吧,看了大家的回贴,特别是swejet的贴子,很细致,但是脑子还是没什么控制的方法
回复 使用道具 举报
一鹏
高级会员   /  发表于:2022-4-4 10:22:55
6#
夏雪冬阳 发表于 2022-4-4 09:39
补充,系统发布在对方公司内网服务器上,这个要控制的话不容易吧,看了大家的回贴,特别是swejet的贴子,很 ...

简单的,就是在前端判断,多放几个页面,等到期了,重新发布一下呗,当然了,你可以不放日期,而是用日期做个计算,比如你在几个地方存几个数值,然后通过计算算出日期,再与当前日期进行对比,不可能每个访问的电脑都要改一下系统日期吧?他要改日期的话,录的单据日期全是错的
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-4-6 10:06:23
8#
活字格云了解一下,共同致富~
回复 使用道具 举报
夏雪冬阳
银牌会员   /  发表于:2022-4-6 10:16:38
9#
要求是发布在内网服务器上
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-4-6 10:22:37
10#
夏雪冬阳 发表于 2022-4-6 10:16
要求是发布在内网服务器上

内网还麻烦了鸭~其实还有一个非常简单的方法,签合同不就完事了嘛~
技术上不好实现的,法律可好使了~
回复 使用道具 举报
alexyui悬赏达人认证 活字格认证
银牌会员   /  发表于:2022-4-6 10:26:30
11#
内网是仅服务器不能上还是所有都不行?如果客户端能上网,是否考虑前端发送ajax请求网络时间和本地时间作对比?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部