国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

關于軟件權限設置的一點心得體會

2024-07-21 02:09:06
字體:
來源:轉載
供稿:網友

       本人在軟件開發過程中關于用戶權限處理的一點點心得體會,拿出來與大家共享,希望大家多提寶貴意見。

       以往大多數文章資料設置用戶權限都是通過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權限字段 */
       ansistring qx="";
       for (i=1;i<=checklistbox1->items->count;i++) {
            if   (checklistbox1->checked[i-1]) {
                 qx=qx+"0";
            } else  {
                 qx=qx+"1";
            }
        }
       sql="update operator set privilege='"+qx+"'  where operator_name='"+cbooperatorname->text+"'";  
       5、設置用戶的全局變量,在窗體的formshow事件中加入權限判斷代碼如下:

            /* 系統管理員具有所有權限 */
            if (frmdm->getusername()!="系統管理員"){
            ansistring qx;
            /* 還沒有設置權限 */
            if (strprivilege.length()==0){
               for (int j=0;j<=parent->componentcount-1;j++){
                    if (parent->components[j]->tag!=0){
                       if  (parent->components[j]->classnameis("tmenuitem")){
                            ((tmenuitem *)parent->components[j])->enabled=false ;
                       } else  {
                          ((tbutton *)parent->components[j])->enabled=false;
                       }
                    }
                }
            } else  {
               for (i=1; i<=strprivilege.length();i++){   /*已經設置權限*/
                    qx=strprivilege.substring(i,1);
                    if (qx=="1"){
                       for (j=0;j<=parent->componentcount-1;j++) {
                            if (parent->components[j]->tag==i){
                               if  (parent->components[j]->classnameis("tmenuitem")){
                                   ((tmenuitem *)parent->components[j])->enabled=false ;
                               }  else  {
                                   ((tbutton *)parent->components[j])->enabled=false;
                                   break;
                               }
                            }
                        }
                     }
                 }
             }
      以上是我在軟件開發過程中關于用戶權限設置的一點點心得體會,希望能夠拋磚引玉。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇仁县| 鞍山市| 山东| 莆田市| 沭阳县| 盘锦市| 蒲城县| 桐庐县| 电白县| 香格里拉县| 南安市| 西安市| 哈巴河县| 商城县| 灌南县| 肥城市| 德钦县| 宁乡县| 益阳市| 攀枝花市| 札达县| 漳平市| 衡阳市| 平昌县| 阜康市| 广宗县| 通州市| 冀州市| 邢台县| 柘城县| 新巴尔虎左旗| 淮滨县| 自贡市| 石河子市| 麟游县| 陈巴尔虎旗| 山丹县| 晋中市| 扎兰屯市| 安福县| 天长市|