2,749
社区成员
发帖
与我相关
我的任务
分享如何提高技术?如何挣钱?如何同时多任务工作?如何开拓业务?如何维系一个相看两不厌的世俗关系?等等。
技术之路有很多很多,你去看一下GITHUB,可发现技术的路线多得跟米似的,又有一些自己都不会,现在流行什么语言就指什么语言,也就只能指到语言层面了。
很多人就开始绕弯路,学了几年还是没有进展。
其实,编程的技能,不花一定的时间反复练习,没有对路的师父在一旁冷眼旁观、及时棒喝,也很难领悟。有师父指路,少走三五年弯路,人生又有几个三年。
安全性验证
在课程最开始的时候,唐先生就问:我们登录之后的页面,就算不登录,知道网址也可以输入地址访问页面?有没有什么方法避免这个情况。
登录的目的就是避免非授权的访问。
开发环境:
VFP SP2 7423
祺佑三层开发框架(猫框)

注意有两半,一半给将帅,一半是帝王。我们BS可以不可这样做,做一个虎符,一半在服务器(S),一半在用户浏览器(B),你访问时,我验证这个虎符是不是符合,符合让你访问
<form action="login.fsp?proc=login">
用户名:<input type="text" value="" name="username">
密码:<input type="password" value="" name="userpwd">
<input type="hidden" name="ispostback" value="1">
<input type="submit" value="登录">
</form>
<%=u(cMsg)%>

BS的虎符叫TOKEN,
为满足多人访问,且可以随时可以让TOKEN失败
我们用Guid来实现
GUID 是永不重复的字符串
方法一
方法二
这就是所谓的Session,有些Session是放在服务器内存,有些放在数据库中,看具体实现了。
一个Token 不能每次都能生效,我们必须给这个虎符TOKEN有效期。
验证不单单验证TOKEN是不是正确的,还要看有没有过期。
TOKEN表结构

DAL代表数据访问类,DAL_TOKEN的类设计只有两个功能
功能一:
生成TOKEN
功能二:
验证TOKEN
生成TOKEN

验证Token


实现一个init 方法,类一旦加载,便会启动这个方法。(类默认方法)

如果TOKEN 不存在,或者过期,就会出现这样的提示了

假如有班级信息,每个代码都要加上吗?
有很多FSP类,
班级
教师
学校
一个一个加很容易错,而且还容易漏掉。
面向过程的程序员,在使用面向对象的语言,总是习惯把代码复制来得复制去的。觉得代码不就是这样子吗?
就没有想到面向对象就直接提升了一级思维层次。
这招可谓是降维打击!

Define Class ctl_ryxx As ctl_public OF ctl_public.prg
即可实现继承了,即由原来的session 变成了 ctl_public
of 后面是PRG文件名
把原来的ctl_ryxx的中init 注释掉,试试效果吧。
以后新建的每个类都直接继承于ctl_public,即可拥有TOKEN验证的能力了。
更多资料:http://www.sn58.cn/