国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
基于角色的權(quán)限設(shè)計(一) - tubo - 博客園

基于角色的權(quán)限設(shè)計(一)

  在任何系統(tǒng)中,權(quán)限設(shè)計是最基礎(chǔ)的東西,本文給出一個基于角色的權(quán)限設(shè)計的循序漸進的設(shè)計方案。

  在權(quán)限系統(tǒng)中,功能(權(quán)限)是最小的單位,比如起草新聞、編輯新聞、審核新聞、刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞、編輯新聞等功能集合,而責(zé)任編輯他可能就有更多的權(quán)限,比如除了新聞編輯的功能,還有審核新聞、刪除新聞等功能,給張三賦予新聞編輯的角色(其實我更愿意說把張三加入到新聞編輯這個角色中去),張三就可以起草新聞、編輯新聞了,給李四賦予責(zé)任編輯的角色,李四就可以起草新聞、編輯新聞、審核新聞、刪除新聞了。

  我們來看看版本一的解決方案:


 

  我們來模擬一下上面的數(shù)據(jù):

  用戶信息表:

UserID

UserName

U1

張三

U2

李四

  角色表:

RoleID

RoleName

R1

新聞編輯

R2

責(zé)任編輯

  角色用戶表:

RoleID

UserID

R1

U1

R2

U2

  功能表:

FunctionID

FunctionName

F1

起草新聞

F2

編輯新聞

F3

審核新聞

F4

刪除新聞

  角色功能表:

RoleID

FunctionID

R1

F1

R1

F2

R2

F1

R2

F2

R2

F3

R2

F4

  我們來看看如何判斷一個用戶具有某個功能權(quán)限:

  首先在用戶張三登錄的時候,獲取張三的全部功能列表:

Select FunctionID From 角色功能表 Where RoleID In (Select RoleID From 用戶角色表 Where UserID=’U1’)

  這樣就可以得到張三的全部功能列表Functions,在起草新聞的頁面我們就可以做如下判斷:

Functions.Contain(‘F1’);//當(dāng)然你可以把這個’F1’定義成一個常量:NewsFunction.Draft

  如果為true就說明張三有起草新聞的權(quán)限。

  當(dāng)然對于web應(yīng)用,您可以把Functions session保存起來,以避免每打開一個頁面都去數(shù)據(jù)庫中獲取。

  似乎看起來是一個不錯的解決方案。

  還是新聞系統(tǒng),最初新聞系統(tǒng)沒有分類,但是隨著新聞的增加,沒有分類的新聞看起來總是亂的,于是張三和李四給新聞添加了分類A、分類B,還是由張三負責(zé)起草,李四負責(zé)審核,以后又添加了更多的分類,并且也增加了人手,這個時候就有新的要求出來了:希望張三只負責(zé)分類A的起草,分類B的起草交給其他人做,李四呢也只負責(zé)分類A的審核(就相當(dāng)于是一個欄目的責(zé)任編輯)。

第二部分:http://tubo.cnblogs.com/archive/2005/09/02/228828.html

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
高級權(quán)限管理系統(tǒng)的設(shè)計
asp.net 一個簡易權(quán)限的小例子設(shè)計
系統(tǒng)權(quán)限設(shè)計(五張表)
基于角色-功能-資源的權(quán)限控制模型的設(shè)計與實現(xiàn)-引子
功能權(quán)限和數(shù)據(jù)權(quán)限管理的實現(xiàn)
淺談RBAC/WEB
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服