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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

系統(tǒng)權(quán)限的設(shè)計(jì)之簡(jiǎn)單設(shè)計(jì)

2019-11-14 14:18:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
設(shè)計(jì)思路

    (1)用戶(hù)表

           權(quán)限是根據(jù)登陸者不同而不同的,用戶(hù)表就比較簡(jiǎn)單了,簡(jiǎn)單的表設(shè)計(jì)如下

    [user_no] [nvarchar](20) NOT NULL, //用戶(hù)ID,主鍵    [user_name] [nvarchar](20) NULL,    [user_passWord] [nvarchar](20) NULL,

(2)權(quán)限列表

設(shè)置所有的權(quán)限,例如新增,修改,查詢(xún)

 

    [action_id] [nvarchar](20) NULL,    [action_name] [nvarchar](20) NULL

(3)功能表

          系統(tǒng)的功能是存在數(shù)據(jù)庫(kù)中的,根據(jù)權(quán)限來(lái)獲取部分功能,并展示。表設(shè)計(jì)如下:

 

復(fù)制代碼
    [function_id] [nvarchar](20) NOT NULL,//功能id    [function_brother_id] [int] NOT NULL,//相同功能的不同頁(yè)面    [function_name] [nvarchar](50) NULL,    [function_url] [nvarchar](500) NULL,    [function_level] [int] NULL,    [function_sort] [int] NULL,    [function_action] [nvarchar](100) NULL,    [function_parent_id] [nvarchar](20) NULL,    [function_inmenu] [bit] NULL,//是否在菜單中
復(fù)制代碼

為什么有[function_brother_id],一個(gè)菜單里面的一個(gè)功能可能會(huì)有多個(gè)頁(yè)面。例如一個(gè)用戶(hù)頁(yè)面,可能在功能里面叫用戶(hù)信息,但是會(huì)涉及多個(gè)頁(yè)面,每個(gè)頁(yè)面都需要權(quán)限。
[function_inmenu]就是判斷同功能里面菜單里鏈接是其中哪個(gè)頁(yè)面(只能有一個(gè))。

[function_action]是根據(jù)權(quán)限列表給每個(gè)功能賦給權(quán)限

(4)權(quán)限組

我們的權(quán)限是根據(jù)組來(lái)區(qū)分的。一個(gè)用戶(hù)在一個(gè)組里面,那個(gè)組里面有哪幾個(gè)功能,其中每個(gè)功能有哪幾種權(quán)限。這就是我們的系統(tǒng)權(quán)限的核心了,不過(guò)比較簡(jiǎn)單。

    [group_id] [nvarchar](20) NOT NULL,    [group_name] [nvarchar](50) NULL,

這里面存儲(chǔ)權(quán)限組的基本信息,一般會(huì)默認(rèn)有系統(tǒng)管理者和一般使用者。

(5)用戶(hù)權(quán)限組

設(shè)定用戶(hù)在哪個(gè)群組。我們目前的系統(tǒng)設(shè)計(jì)的是一個(gè)用戶(hù)可以有多個(gè)組,但是我覺(jué)得一個(gè)用戶(hù)設(shè)定一個(gè)群組就ok了。如果一個(gè)用戶(hù)沒(méi)有設(shè)定在哪個(gè)組,默認(rèn)為一般使用者。

    [group_id] [nvarchar](20) NULL,    [user_no] [nvarchar](20) NOT NULL,

(6)群組功能

設(shè)定每個(gè)群組里面有哪幾個(gè)功能,每個(gè)功能有哪幾種權(quán)限。

注意,功能表里面的權(quán)限與此處不同,可能一個(gè)功能有查詢(xún)和刪除權(quán)限,但是本群組里面的這個(gè)功能只有查詢(xún)權(quán)限。

這個(gè)權(quán)限必須是在功能里面此功能所有的權(quán)限中。

 

    [group_id] [nvarchar](20) NOT NULL,    [function_id] [nvarchar](20) NOT NULL,    [group_action] [nvarchar](100) NULL,

 

表設(shè)計(jì)到此ok,算是比較簡(jiǎn)單的。

 

 

 

使用過(guò)程

 (1)登陸時(shí)

      驗(yàn)證通過(guò)時(shí),

             > 根據(jù)用戶(hù)id去用戶(hù)權(quán)限表里面取得此用戶(hù)所對(duì)應(yīng)的群組

             >根據(jù)群組對(duì)應(yīng)的所有功能去功能表里面找到相應(yīng)的在菜單中的功能,這里可以拼成xml來(lái)組成功能列表,

                 這樣就可以實(shí)現(xiàn)有些功能在菜單,有些沒(méi)權(quán)限的則不在,也可以查到此功能有哪些權(quán)限(比如只有查詢(xún)權(quán)限,或是還有新增權(quán)限)

       進(jìn)入頁(yè)面時(shí)的處理

          群組功能里面無(wú)此頁(yè)面功能時(shí),就算是直接輸入連接也會(huì)被拒絕訪問(wèn)

          根據(jù)頁(yè)面找到功能id,再找到登入者所屬群組此頁(yè)面有哪些權(quán)限,根據(jù)權(quán)限來(lái)實(shí)現(xiàn)一下頁(yè)面元素的隱藏和顯示(如沒(méi)有新增權(quán)限就把新增按鈕隱藏)

          這樣就實(shí)現(xiàn)了登入者的權(quán)限,進(jìn)入頁(yè)面的權(quán)限和頁(yè)面上一些操作的權(quán)限了。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 尉犁县| 抚州市| 凭祥市| 千阳县| 拉萨市| 望都县| 晋州市| 城市| 兴隆县| 娄烦县| 嘉义县| 鸡泽县| 肇东市| 郑州市| 徐州市| 开鲁县| 皮山县| 纳雍县| 本溪| 宿州市| 屏边| 库伦旗| 虞城县| 正宁县| 安吉县| 老河口市| 鸡西市| 凤山县| 周口市| 临沂市| 武冈市| 莱州市| 孙吴县| 威信县| 腾冲县| 霍州市| 张家界市| 密山市| 崇义县| 鄱阳县| 吉首市|