分享
 
 
 

通用权限管理工具,支所有ADO(包括ODBC)支持的数据库,不管用什么编程都行,VC/BCB/VB/PB/Delphi

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

下面是一部分说明:

请细请到这里下载ExeDemo测试版

通用权限管理工具的创作动机

权限管理是MIS软件中很重要的一环。很多国内较出名的MIS软件厂商都设计了较完善的也具有自己特色的权限管理模块。但对于很多没那么规范的软件商(包括个人或小创作团体),他们经常是接到一单,设计一套权限管理系统,每套都不同;有的则不够重视,随便写上一段,哪里都拷过去用;有的也曾费尽心机,但结果总不能令自己满意。

其实仔细想一下,每套软件的权限虽然各不相同,但其实所需实现的功能是相同的。权限管理是MIS软件中可代码重用性最高的一个模块,也是重复开发率最高的一个模块。

做一个最通用的权限管理模块,支持尽可能多的数据库后台,支持尽可能多的前台开发工具,尽最大可能方便软件工作者设计维护和最终用户使用,当然,还要保证权限管理技术的先进性,即注重灵活性的安全性。基于这样的设想,我参考了多种权限管理系统后,设计实现了这一个通用权限管理工具。

我不敢说:减少代码重用,从我做起。但也希望自己的工作能为大家带来方便。

希望大家喜欢这个工具。有Bug一定烦劳报告一下,我们一起来完善它!

关于通用权限管理工具

支所有ADO(包括ODBC)支持的数据库,不管用什么编程都行,VC/BCB/VB/PB/Delphi , 这是吹牛吗?一点也不!本软件创作期间即考虑到数据库兼容的问题,重要脚本绝对符合SQL_92标准。大部份工作后台进行,稍加改动适应也是轻而易举。

所有购买DLL版的用户,均赠送SQL脚本及与Exe版一样或相似的调用代码示例,共以下几种:

Delphi6.0

C++Builder5.0

VB5.0

PB7.0

使用及购买协议

本通用权限管理系统的Exe版免费提供用户测试使用, 购买Dll版费用为RMB100元整,提供Dll、SQL脚本和Delphi、BCB、VB、PB调用的原程序示例. 购买Dll的Delphi6源代码费用为RMB500元整.不管是免费的, 购买的, 程序、源程序及SQL脚本的版权为作者所有.

用户购买所得的文件或代码、脚本只限于用户自己或本单位研发、发布系统使用, 不得免费或有偿再次发布、公布.

如不同意以上协议, 作者将不接受购买.

联系作者

来信/汇款地址:

321409 浙江省缙云县大源镇稠门一村10号 李岳金收

招商银行一卡通帐户:057150424609

主页地址:http://elsesoft.home.sohu.com

Emailto:llii@163.net

开寅软件工作室 ©1999-2001

用户权限管理

这就是用户权限管理的窗口,(如果不用ADO事务处理,下面将没有"取消"和"保存"按钮)

请注意,这里我为了方便,很多地方都设了1、2、3,其实都可以设为字符串型数据,长度在20个字节以内,应该都够用了。另外,在添加组名称后,在组权限设置列表下应自动显示出可设置的权限项目,如果不是,则说明DBMS不能良好的支持ADO事务,请取消ADO事务后重新进入。

你可以自己选择先添加用户还是先添加权限组,系统均会作完善处理。

一个用户按照设置不同,有三种状态,分别是"正常"、"过期"和"禁用",只有处于""正常状态下的用户才能对系统登录成功。一个用户可以设置允许几个权限组的权限,他能在任一个权限组中允许的权限项目检测中通过。

对每一个权限组,你可以按功通、职责不同选取相应的权限项目。

组权限列表中的分组的作用和权限组的作用是相辅相承的:如果它的子项目全部没有选择,它也就没有选择,如果其中有一个或多个或全部选择了,它就被允许。你可以在进入一大模块之前检测用户有没有进入组的权限,如果有就放行,没有就不必进入了,因为他进去了也无事可做。

请输入用户ID、用户姓名、密码,及指定是否有效和有效使用期限。

其中密码可以为空,也可以长达几十个字符。

用户ID与现有ID重复时将不能添加。

编辑用户信息时,不能更改用户ID,如要更改,请删除后重新添加。

添加权限组只要输入不与现有组名称重复的就行了。

开寅软件工作室 ?1999-2001

函数声明

软件设计者完全掌握权限管理不需要再绞尽脑汁, 使用通用权限管理工具DLL版,只需声明10个函数即可, 若是也让我沾一下你的光彩, 多声明一个ShowAbout也才11个。

本权限管理DLL测试了四种通用MIS开发工具的函数测试,均可使用。

C++BuilderVBPB请点击进入相应的页面查看,VC++我不熟, 但用的人全是高手, 我也就不献丑了, 照BCB的稍改一下就行。

下面以Delphi的函数调用进行详细说明。

Delphi(DLL版提供本例本窗口的Delphi6.0和C++Builder5.0界面和代码)

强烈建议交付用户使用时更改DLL的名称以及改声明DLL的名称为相应的名称,以防止某些自以为是的人对其进行乱开发并破坏系统安全。

procedure ShowAbout;stdcall; external 'qxDll.dll';

{这个不用说了吧?}

function ConnectDB(cnStr, user, pwd : PChar;

dt, enpwd : PChar): integer; stdcall; external 'qxDll.dll';

{连接数据库

参数说明:

cnStr : 就是上面要取得的连接参数

user : 登录数据库的用户ID

pwd : 登录数据库的密码

dt : 日期格式为yyyy-MM-dd, 为空时取计算机日期

enpwd : 密码加密因子

返回值 :

0, 连接成功

1, 连接失败

}

procedure DisConnectDB;stdcall; external 'qxDll.dll';

{断开数据库连接}

procedure EditqxList(tran : integer);stdcall;

{参数说明: 1 : 用事务处理, 0 : 不用事务处理}

{打开权限列表维护窗口, 可不用声明, 因为最终用户不需要}

procedure qxManager(tran : integer); stdcall; external 'qxDll.dll';

{参数说明: 1 : 用事务处理, 0 : 不用事务处理}

{打开权限管理窗口, 这个最重要}

function LoginCheck(userID, pwd, dt, ErrStr : PChar;

sysErr : integer) : integer;stdcall; external 'qxDll.dll';

{用户登录你的系统

参数说明:

userID : 登录到管理系统的用户名

pwd : 登录到管理系统的密码

dt : 同上一个函数,主要考虑到有的系统几天不关机,

好让软件知道刚才想登录的用户过期了没有

ErrStr : 如果用户登录失败, 你想在DLL中显示自己的信息时使用,

可以为空字符串

sysErr : 登录失败处理方式,

0, 由你的程序自己处理

1, 仅显示ErrStr所提供的信息

2, 由DLL来显示出错信息

返回值 :

0, 登录成功

1, 用户被禁止使用

2, 用户使用期限已过

3, 密码不正确

4, 无此用户

}

function ShowLoginForm(Cap, dt : PChar;

var userID: PChar;var sec : integer) : integer;stdcall;

{用本DLL的登录对话框处理用户登录}

{参数说明:

Cap : 登录对话框的标题

dt : 同上一个函数,主要考虑到有的系统几天不关机,

好让软件知道刚才想登录的用户过期了没有

userID : 返回刚才登录用户的userID的缓冲区

sec : 10以上, 按秒计限时登录, 10以下,按次计限次登录.

登录成功时返回userID的长度

返回值 :

0, 登录成功

1, 登录限定次数已到

2, 登录限定时间已到

3, 用户取消

下面分别是两种限定的登录对话框图示:

}

function ChangUserPwd(userID,oldPwd,newPwd,dt : PChar): integer;stdcall;

{更改用户密码

参数说明:

userID : 登录到管理系统的用户名

oldPwd : 原来的密码

newPwd : 新密码

dt : 同上

返回值 :

0, 更改成功

1, 用户被禁止使用,所以不能更改

2, 用户使用期限已过,所以不能更改

3, 密码不正确,所以不能更改

4, 无此用户,所以不能更改

5, 新旧密码相同,所以不更改

6, 不明原因致使修改不成功}

function ShowChangUserPwdForm(userID,dt : PChar): integer;stdcall;

{用本DLL的登录对话框处理密码更改

参数为用户ID和日期

返回值:0 : 成功, 1 : 不成功

下面是用户改更密码对话框的图示:

}

function GetUserNameFromID(userID : PChar;

var userName : PChar): integer;stdcall;

{取得相应用户ID的用户名字

参数说明:

userID : 用户ID

userName: 返回检查到的用户名字的缓冲区

返回值:

0 : 没有取得这个ID的名字,

其它 : 返回userName的长度}

function UserQxCheck(UserID : PChar; qxID : integer;

ErrStr : PChar; sysErr : integer) : integer; stdcall; external 'qxDll.dll';

{检查某用户是否可使用某一功能的权限

参数说明:

userID : 要检查权限的用户ID

qxID : 要检查的权限ID, 注意, 是整数型值

ErrStr : 同上一函数

sysErr : 同上一函数

返回值 :

0, 有使用此功能的权限

1, 没有使用此功能的权限

}

开寅软件工作室 ©1999-2001

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有