百宝云登录授权系统
登录授权系统的功能就是:只有授权的用户机器才能使用我们开发的软件,非授权的机器是不能使用软件的。
下面我们就依次来学习怎么实现这个系统?
2.1登录系统设计图如下:
2.2授权系统的相关功能模块实现
2.2.1授权系统的相关数据库操作
/////////////////////////////////数据库相关操作专用文件////////////////////////////////
// 创建数据库
功能 mySql创建数据库()
变量 返回数组,ret
ret = sqlite数据库执行返回数组("授权数据库.db","create table IF NOT EXISTS userInfo(id integer primary key autoincrement,name,macid,islogin,isBlackUser)",返回数组)//创建表
如果(!ret)
发送文本消息("创建表失败:"& 获取错误信息(1))
返回 假
否则
返回 真
结束
结束
// 向数据里添加一条数据
功能 mySql插入数据(name,macid)
变量 retArray = null,inserText
inserText = 字符串格式化("insert into userInfo(name,macid,islogin,isBlackUser) values('%s','%s','false','false')",name,macid)
变量 ret = sqlite数据库执行返回数组("授权数据库.db",inserText,retArray)
如果(ret)
发送文本消息("插入一条新的数据")
返回 retArray
否则
发送文本消息("插入数据失败,原因:"&获取错误信息(1))
返回 null
结束
结束
// 查询所有信息
功能 mySql查询所有信息()
变量 sqlstr = "select * from userInfo"
变量 返回数组,ret
ret = sqlite数据库执行返回数组("授权数据库.db",sqlstr,返回数组)
//sendtextmsg("查询结果:"&返回数组)
返回 返回数组
结束
// 查询所有信息By name macID
功能 mySql查询所有信息ByNameMacID(name,macID)
变量 sqlstr = 字符串格式化("select * from userInfo where name='%s' and macid='%s'",name,macID)
变量 返回数组,ret
ret = sqlite数据库执行返回数组("授权数据库.db",sqlstr,返回数组)
返回 返回数组
结束
// 允许登录
功能 mySql允许登录ByName(name)
变量 返回数组,ret
变量 sqlstr = 字符串格式化("select * from userInfo where name='%s'",name)
ret = sqlite数据库执行返回数组("授权数据库.db",sqlstr,返回数组)
如果(ret && 返回数组 != null)
sqlstr = 字符串格式化("update userInfo set islogin='true' where name='%s'",name)
ret = sqlite数据库执行返回数组("授权数据库.db",sqlstr,返回数组)
如果(!ret)
发送文本消息("sql允许登录ByName失败,原因:"&获取错误信息(1))
结束
返回 真
否则
发送文本消息("数据库没有名称为:"&name&"的数据,修改失败")
返回 假
结束
结束
2.2.2授权系统的验证与交互界面的实现
变量 当前用户名 = ""
// 程序入口功能
功能 _initial()
发送文本消息("登录系统启动")
mySql创建数据库()
结束
<pre name="code" class="html">// 按下主按钮触发的功能方法
功能 _mainbutton()
发送文本消息("你好mainbutton")
结束
功能 _mainbutton()
发送文本消息("你好mainbutton")
结束
// arg1在这里为用户名或者注册码
// arg2在这里为机器码
功能 _userlogin(token,arg1,arg2,out_ret)
发送文本消息("arg1="&arg1&" arg2="&arg2)
如果(!效验用户(arg1,arg2))
返回 假 // 效验失败,不允许登录
否则
// 验证成功就直接登录
返回 真
结束
返回 真
结束
功能 效验用户(name,macID)
// 根据mane与macID一起查询
变量 查询数据 = mySql查询所有信息ByNameMacID(name,macID)
如果(查询数据 != null)
如果(查询数据[0]["islogin"] == "true")
发送文本消息(name&"登录成功")
返回 真
否则
发送文本消息(name&"未授权,不运行登录")
返回 假
结束
否则
mySql插入数据(name,macID)
// sendconfigconfirm("授权","是否为下面的用户授权登录?","用户","待授权用户:"& name,"yesno","待授权")
结束
返回 假
结束
功能 _loadconfig()
变量 arr = 数组("未授权用户","已授权用户","退出")
变量 ret = 格式化单选框配置("UI_主界面",arr,"授权系统,查看未授权与已授权用户!","主界面")
返回 ret
结束
//交互界面的事件的枢纽,用户在app中点击所有交互界面中的控件,都会经过这个函数
功能 _submitconfig(id,value)
发送文本消息("_submitconfig id:"&id&" value:"&value)
// 在主界面上的操作
如果(id == "UI_主界面")
如果(value == "未授权用户")
返回 "config_未授权用户列表"
否则如果(value == "已授权用户")
返回 "config_已授权用户列表"
否则
返回 "exit" // 退出交互界面
结束
结束
// 在未授权界面上的操作
如果(id == "UI_未授权用户")
当前用户名 = value
返回 "config_是否授权当前用户"
结束
// 在确认授权界面上的操作
如果(id == "UI_确认授权用户")
如果(value == "yes")
对当前用户授权()
返回 "exit"
否则
返回 "config_未授权用户列表"
结束
结束
// 未做任何处理就退出交互界面,避免出现错误页面
返回 "exit" // 退出交互界面
结束
功能 对当前用户授权()
如果(mySql允许登录ByName(当前用户名))
发送文本消息("对用户:"&当前用户名&"授权成功")
否则
发送文本消息("对用户:"&当前用户名&"授权失败")
结束
结束
// 未授权用户列表界面
功能 config_未授权用户列表()
//发送文本消息("config_未授权用户列表 11")
变量 用户列表 = mySql查询所有信息()
变量 待授权列表 = 数组()
变量 size = 数组大小(用户列表)
遍历(变量 i = 0; i < size; i++)
如果(用户列表[i]["islogin"] == "false")
关联数组追加元素(待授权列表,用户列表[i]["name"])
结束
结束
返回 格式化单选框配置("UI_未授权用户",待授权列表,"未授权的用户列表","未授权用户")
结束
// 已授权用户列表界面
功能 config_已授权用户列表()
变量 用户列表 = mySql查询所有信息()
变量 已授权列表 = 数组()
变量 size = 数组大小(用户列表)
遍历(变量 i = 0; i < size; i++)
如果(用户列表[i]["islogin"] == "true")
关联数组追加元素(已授权列表,用户列表[i]["name"])
结束
结束
返回 格式化单选框配置("UI_已授权用户",已授权列表,"已授权的用户列表","已授权用户")
结束
// 确定是否对选择的用户进行授权的界面
功能 config_是否授权当前用户()
返回 格式化确认框配置("UI_确认授权用户","是否对当前选择的用户授权登录?",当前用户名)
结束
2.3授权系统的软件端功能实现
软件端的代码是TC代码,主要是使用了百宝云提供的COM插件来实现的。详情见下面代码:
主界面的代码处理如下:
变量线程ID,bby
功能 授权测试端_初始化()
//这里添加你要执行的代码
注册插件("rc:t_baibaoyun.dll",假)
如果(!是否注册("bby.soft"))
注册插件("rc:t_baibaoyun.dll",真)
结束
bby = 插件("bby.soft")
变量 ver = bby.ver()
调试输出(ver)
如果(0 != bby.reg("abin","e31b226281a6a5f026ba2033c946c148"))
调试输出("注册失败")
结束
如果(101 != 控件模态窗口("登录授权"))
退出()
结束
结束
主要就是在界面的初始化里添加对COM插件的注册、插件对象的创建、reg接口执行与目标云应用的关联。
子界面:登录界面的处理
效果图
代码:
//开始按钮_点击操作
功能 登录授权_开始_点击()
变量 name = 编辑框获取文本("name","登录授权")
变量 macid = bby.getmac()
变量 buffer = 0
如果(bby.login(name,macid,buffer) == 0)
调试输出("已经是授权用户")
控件关闭子窗口("登录授权",101)
否则
消息框("未授权用户")
结束
返回 真
结束
//退出按钮_点击操作
功能 登录授权_退出_点击()
退出()
返回 真
结束
分享到:
相关推荐
百宝云COM开发组件是...任何语言都可以做到无缝的与百宝云应用进行连接百宝云组件内置了数十种加解密算法,与百宝云内部数十种加密算法对应,可以无缝进行加解密操作。WIN7 WIN8 WIN10 系统注意事项 1、系统已经关闭UA
支持在线更新 对接百宝云编写代码 进行对接 详情
批量生成卡、查询卡、自动更新、加密、防破解、实时监控、管理等功能,最新、最全版本。
继之前开源的易语言网络验证系统V1版、V2.0版,本次百宝云给大家开源易语言网络验证V4版,功能完善,性能稳定,获得很多脚本作者的好评。整个管理端是纯易语言编写,全开源。 本套系统功能介绍: 1、支持批量生成...
亲爱的各位电脑爱好者,我跟大家一样是一位热爱封装系统的人,但现在封装工具纷繁复杂,没有一个统一的整理,为了能让更多的人尽快学会系统封装,本人特意写了此软件,综合了现在大部分的工具和教程方便大家学习。...
易语言百宝云网络验证系统V2.0版
百宝箱百宝箱百宝箱百宝箱百宝百宝箱百宝箱百宝箱百宝箱箱
百宝云开发工具是一款免费使用的云服务定制开发平台工具。可以轻松地开发APP,支持网络文件存储,网络数据库,有自己的云应用开发语言,还有强大的云交互功能。
百宝箱--百购网址导航百宝箱-天气、手机等查询系统
内容包括: Excel万能百宝箱V30.0、Excel万能百宝箱64位 V29.0 64Bit、WPS万能百宝箱V29.0、Office百宝箱V29.5 官方版、约120MB的软件教学GIF动画教程包、Office百宝箱系统修复大师V10.0以及相关功能文字说明及功能...
易语言网络验证系统源码
EXCEL万能百宝箱V26.0官方正版+GIF教程。360个精品功能,超级好用,功能不多说了。听说点赞的人都收藏了哈哈。。。
自动优化系统的小工具==优化百宝箱,优化百宝箱dowtools1.3
WPS万能百宝箱 V29.0 多国语言版(WPS2019个人免费版与专业增强版繁简体通用)U盘+移动硬盘版(XP至WIN10通用+可换机用) 精品480个超实用功能! 千锤百炼,品质卓越。WPS万能百宝箱 是著名微软办公软件EXCEL...
是用JSP开发的一个类似于个人资料管理的系统
Excel、Wps、VBA、Office百宝箱 V31.6 32+64位完整珍藏版,包括Excel百宝箱、Wps百宝箱、VBA百宝箱、Office百宝箱以及完整教程功能演示。被誉为"全能的办公瑞士军刀"。助力办公文员、蓝领白领灵巧办公,办公必备利器...
内置了图片百宝箱、财务百宝箱、函数百宝箱、二维码百宝箱。包括280个菜单功能和200个以上自定义函数,集480个宝贝于一身,但体积小于30MB。当安装万能百宝箱后,如果您使用Excel 2003,则将产生【万能百宝箱】菜单...
用MyEclipse做的基于JSP的网络百宝箱系统
Excel百宝箱 Excel百宝箱