二進位制許可權控制

2021-07-03 03:05:02 字數 1195 閱讀 1451

在許可權分配中有多個許可權級別,不同使用者分別有多個不同的許可權。

論壇的許可權:

檢視、發帖、投票、搜尋

使用者的許可權:

使用者a:檢視、發帖

使用者b:檢視

使用者c:檢視、發帖、投票、搜尋

分析:有四種不同的許可權級別,總共2^4種許可權分配方式。

像這樣許可權等級劃分和不同級別使用者的許可權分配採用二進位制方式許可權分配驗證方式是最好的選擇。即每乙個操作許可權都用乙個二進位制數表示(1、10、100、1000)。總共的許可權種類有2^n種,n即代表許可權類別。在c#中long型別有64位,所以總共有64類許可權,2^64種許可權分配方式。許可權的分配、刪除、檢視都採用二進位制運算實現。

long userrolevalue;//使用者的操作許可權

long oprolevalue;//乙個操作的許可權

1.許可權的分配(或運算)

userrolevalue = userrolevalue | oprolevalue

(00001110)2=(00000010)2|(00000100)2|(00001000)2

2、許可權的刪除(求補、與運算)

userrolevalue = userrolevalue & (~oprolevalue)

3、許可權的驗證(與運算)

(userrolevalue & oprolevalue) == oprolevalue

(00000101)2 &( 00000011)2 ==(00000001)2

如果通過驗證則具有相應類別的許可權。

此驗證方法,還可以用在選單許可權的驗證上來。根據要劃分的許可權等級數量可以選擇相應的資料型別,比如int型別預設的是32位的,short是16位的。

附:邏輯(布林型)運算子用於對bool型的結果的表示式進行運算,運算的結果都是bool型。其運算結果如下所示:

運算子 運算 例子 結果

& and(與) false&true

false

| or(或) false|true

true

^ xor(異或) false^true

true

! not(非) !false

true

&& and(短路) false&&true

false

|| or(短路) false||true

true

二進位制許可權

package test 二進位制許可權使用 許可權 0 表示所有許可權 1 新增 0001 2 修改 0010 4 刪除 0100 8 檢視 1000 如 10 十進位制的 10 不是二進位制的 1 代表的許可權是 修改和檢視許可權 public class bitpermission 是否含有許...

Chmod 二進位制許可權

linux 許可權預設使用 rwx 來表示,為了更簡化在系統中對許可權進行配置和修改,linux許可權引入二進位制表示方法,如下 linux 許可權可以將 rwx 用二進位制來表示,其中有許可權用 1 表示,沒有許可權用 0 表示 linux 許可權用二進位制顯示如下 rwx 111 r x 101...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...