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

ado|odbc|编程|数据|数据库

下面是一部分说明:

请细请到这里下载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++Builder、VB、PB请点击进入相应的页面查看,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

 

时间: 2016-02-09

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

权限管理工具的使用方法

权限管理工具的使用 在当今商业软件的开发中有一项功能是必不可少的,这就是权限工具,想必大家对权限这个词不会太陌生,应为在我们身边的很多软件上都用到了权限,比如说最常见的Windows操作系统,就使用到了权限,但是在实际的开发过程中,权限是个相当麻烦的东西.大家都在寻找一种简易的权限管理方式,这个时候我们发现了CG.Security这个组件,这是一个非常优秀的功能权限管理组件,它可以让我们非常简便的来控制软件的权限. 使用CG.Security你可以任意添加删除权限.角色和权限.可以通过大多数的权

通用权限管理模块的设计与实现

一.简介 最近正在用VC做一个信息管理系统项目,由于涉及多个子系统,权限管理就成为一个共同需要解决的问题,于是做了一个通用权限管理模块,在各子系统中应用良好. (1)程序登陆框用户验证运行画面如下: (2)程序用户管理模块运行画面如下:

通用权限管理设计篇(一)

一.引言 因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来 更好的思考一下权限系统的设计. 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设 计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系 统是很有意义的. 二.设计目标 设计一个灵活.通用.方便的权限管理系统. 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以 把这些资源简单概括为

通用权限管理设计 之功能权限

一,前言  权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限  本文只从<使用权限>和<分配权限>这两种应用层面分析,暂时不考虑<授权权限>这种. 二,初步分析 用户和角色  说到权限管理,首先应该想到,当然要设计一个用户表,一个权限表.这样就决定了一个人有什么样的权限. 做着做着就会发现这样设计太过繁琐,如果公司里面所有员工都有这样的权限呢,每一个人都要配置?那是一件很痛苦的事情.因此再添加一个角色表,把某些人归为一类,然后再

通用权限管理设计

最近又碰到了权限的分配和管理,需要单独设计一套结构.其实以前有了很多的这方面的设计和博文 ,在园子里面的找找看就会找到N页的结果. 这里也不敢说是新思路吧,权当是自己的总结和留个脚印吧,方便查找. 通用在这里有两个概念: 1.为了吸引眼球 一看到是通用就要点开看看究竟,当然了,结果无非是几种,有人骂,有人捧,有人不感兴趣,有人 回帖探讨. 2.通用的范围 通用不是说一概而论的通用,哪里都可以用,肯定存在调整或者根本就不能用的地方,有存在的合理 性和范围的. 本文将权限管理划分为对人.应用和权限的

通用权限管理设计 之数据权限

本文将对这种设计思想作进一步的扩展,介绍数据权限的设计方案. 权限控制可以理解,分为这几种 : [功能权限]:能做什么的问题,如增加产品.[数据权限]:能看到哪些数据的问题,如查看本人的所有订单.[字段权限]:能看到哪些信息的问题,如供应商账户,看不到角色. 部门等信息. 上面提到的那种设计就是[功能权限],这种设计有一定的局限性,对于主体,只能明确地指定.对于不明确的,在这里可能就没办法处理.比如下面这几种情况: Java代码   数据仅当前部门及上级可见   数据仅当前用户(本人)可见  

通用权限管理模块系列——SQL安全性参考

整体的SQL权限太多了,这里就只摘录部分实现 在SQL里也有安全主体.安全对象和授权的说法. 其中有金色海洋所提到的拒绝访问的一种类型. 一.主体 是获得了 SQL Server 访问权限的个体.组和进程. 安全对象是服务器.数据库和数据库包含的对象. 每个安全对象都有一组权限,可配置为进一步最小化 SQL Server 外围应用. 主体是可以请求 SQL Server 资源的实体.与 SQL Server 授权模型的其他组件一样,主体也可以按层次结构排列.主体的影响范围取决于主体定义的范围(W

如何利用Windows7文件权限管理工具删除顽固文件

如果你删除Windows7文件时遇到"文件夹访问被拒绝,你需要权限来执行此操作"时,说明你当前的用户没有权限对此文件的操作. Windows7文件不能用粉碎器来删的.这时候你就可以下载个<Windows7文件管理工具>来帮助你删除文件了. 下载后打开软件,在你要删除的文件上点右键选择<获取文件权限>.确定后,再点击右键选择<删除>就可以了.

通用权限管理模块系列———Windows安全性参考

俺们自己搞不出什么牛的框架,不过没吃过猪肉好歹见过猪跑(不过城市里的朋友们例外) 这篇是学习Windows对于一些权限问题的处理方式.下篇要等2小时了,呵呵.是关于SQL 2005里面有关权限方面的考察. 不考虑有域的情况 单机情况下,Windows内与权限有关的内容是: 一. 用户 组 一个用户可以处于多个组内 二.资源(被操作对象,例如:文件.文件夹.系统等)