关于权限设置的一点心得体会

来源:互联网 发布:ib盈透 知乎 编辑:程序博客网 时间:2024/04/29 10:50
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

      本人在软件开发过程中关于用户权限处理的一点点心得体会,拿出来与大家共享,希望大家多提宝贵意见。

      以往大多数文章资料设置用户权限都是通过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

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击