数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
通用权限管理工具,支所有ADO(包括ODBC)支持的数据库,不管用什么编程都行,VC/BCB/VB/PB/Delphi

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

下面是一部分说明:

请细请到这里下载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:[email protected]

开寅软件工作室 ©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

 




相关文章

相关软件