关于权限设置的一点心得体会
来源:互联网 发布:ib盈透 知乎 编辑:程序博客网 时间:2024/04/29 10:50
本人在软件开发过程中关于用户权限处理的一点点心得体会,拿出来与大家共享,希望大家多提宝贵意见。
以往大多数文章资料设置用户权限都是通过ActionList与中的权限表相联实现。我经过实践通过控件的Tag属性(每个控件都有一个保留的Tag属性,默认值为0),也可以实现权限的设置,下面我就具体说明实现方法。
1、将所有需要设置权限的菜单和按钮的Tag属性从1开始分配不重复的阿拉伯数字(1,2,3......),这里不用0(控件Tag属性的默认值),表示此控件不需做权限设置。
2、将所有权限名称加到CheckBoxList中,包括菜单和按钮,其顺序一定要与分配阿拉伯数字的顺序完全一致。
3、在数据库中建立操作员表(包括编号、姓名、权限)权限用一个只包含0和1的字符串表示。用0表示有相应的权限(对应的菜单或按钮可用,Enabled=true),用1表示没有相应的权限(对应的菜单或按钮不可用,Enabled=false)。这个字段要设置足够长(我预留了50位),以备扩充之用。
4、设置权限主要代码如下:
/*qx,用户权限字符串,operator操作员表,privilege权限字段*/
AnsiStringqx="";
for(i=1;i<=CheckListBox1->Items->Count;i++){
if (CheckListBox1->Checked[i-1]){
qx=qx+"0";
}else {
qx=qx+"1";
}
}
Sql="updateoperatorsetprivilege='"+qx+"' whereOperator_name='"+CboOperatorName->Text+"'";
5、设置用户的全局变量,在窗体的FormShow事件中加入权限判断代码如下:
/*系统管理员具有所有权限*/
if(FrmDM->GetUserName()!="系统管理员"){
AnsiStringqx;
/*还没有设置权限*/
if(strPrivilege.Length()==0){
for(intj=0;j<=Parent->ComponentCount-1;j++){
if(Parent->Components[j]->Tag!=0){
if (Parent->Components[j]->ClassNameIs("TMenuItem")){1
- 关于权限设置的一点心得体会
- 关于软件权限设置的一点心得体会
- 关于状态机的一点心得体会
- 关于软件设计的一点心得体会
- 关于软件设计的一点心得体会
- 关于软件设计的一点心得体会
- 经验交流:关于软件设计的一点心得体会
- 关于使用git的一点心得体会
- 关于iBase4J使用的一点心得体会
- 一点心得体会,关于忙
- 子女教育的一点心得体会
- 架构的一点心得体会
- 关于framebuffer这几天学习的一点心得体会和疑惑
- 关于一点权限控件的一点想法!
- 作业运用的一点心得体会
- 读Apache的一点心得体会
- 面试PHP的一点心得体会!
- 学习matlab的一点心得体会
- Oracle 10g中SCN与TimeStamp的斗转星移
- RedHat AS 4.1 + Postfix + Dovecot + Cyrus-sasl 安装笔记
- 跟我学SQL:(二)SELECT语句选项
- 写给Linux内核新手-关于Linux内核学习的误区
- SQL中DATALENGTH用法
- 关于权限设置的一点心得体会
- DLL编写教程
- 中,sqlserver在客户端调用存储过程向服务器端备份
- 盐的妙用
- Struts常见异常信息和解决方法
- 利用复制技术实现数据同步更新
- sql数据的like查询条件
- DLL编写教程
- SQL猜想