MIS系統權限控制的一個(gè)簡(jiǎn)便方法
MIS系統權限控制的一個(gè)簡(jiǎn)便方法收藏 新一篇: 創(chuàng )MIS系統的權限又多又復雜,很多人是在用戶(hù)數據表中設置多個(gè)字段,每個(gè)字段代表一個(gè)權限,或者設置一個(gè)字符串,不同的字符組合表示用戶(hù)的不同權限。簡(jiǎn)單一點(diǎn)的,可以預先設置幾個(gè)角色,根據角色來(lái)行使預設權限,但又不夠靈活?,F介紹一個(gè)簡(jiǎn)單靈活的權限分配控制的方法,并無(wú)高深見(jiàn)解,只是很多人忽略了它。如果您正在設計權限控制模式,不妨接著(zhù)往下看。
此方法非常簡(jiǎn)潔,擴充性很好。
僅用一個(gè) integer 字段即可保存全部權限組合。
另外每個(gè)權限用一個(gè)整型表示
如:商品查看權限用 1 ;
商品更改權限用 2 ;
商品完全瀏覽權限用 4 ;
訂單查看權限用 8 ;
訂單更改權限用 16 ;更多權限…… 32,64,128 ……
給用戶(hù)分配權限時(shí),只需把用戶(hù)獲得的權限值累加就可以了。
應用時(shí)使用“與”操作來(lái)識別哪個(gè)用戶(hù)是否擁有相應的權限。
例子
if 用戶(hù)的權限總值 and 當前操作所需的權限 = 當前操作所需的權限 then
showmessage(‘有權限‘)
else
showmessage(‘無(wú)權限‘);
運用此法,可簡(jiǎn)單的設計出復雜的權限系統。
這篇文章實(shí)為一拋磚引玉之作,如您有更好的權限控制系統設計思路,歡迎來(lái)信討論: ufo2003@126.com
#aedvoan 發(fā)表于2005-11-13 15:24:00 IP: 220.191.126.*
能稍稍解釋下這是為什么嗎?
#小網(wǎng)蟲(chóng) 發(fā)表于2005-11-18 18:13:00 IP: 218.72.153.*
道理很簡(jiǎn)單啊,and 是以二進(jìn)制按位“與”操作的。其真值表是:
1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0
比如十進(jìn)位值 9的二進(jìn)制是:01001
8的二進(jìn)制是:01000
9 and 8的二進(jìn)制結果是 01000= 8
9 and 4的結果是 00000= 0
所以,就表示8包含在9的組合方式內(8+1=9),而4不包含在內。
#dbj 發(fā)表于2006-05-27 13:40:00 IP: 221.221.218.*
高明
#touchboy 發(fā)表于2006-11-07 12:25:00 IP: 124.29.31.*
我也是從速達那學(xué)到這一招,已經(jīng)在很多項目中運用

