巧妙運用二進位制驗證許可權

2021-09-06 13:33:55 字數 1422 閱讀 2241

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

論壇的許可權:

檢視、發帖、投票、搜尋

使用者的許可權:

使用者a:檢視、發帖

使用者b:檢視

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

分析:

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

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

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

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

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

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

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

巧妙運用二進位制驗證許可權

在許可權分配中有多個許可權級別,不同使用者分別有多個不同的許可權。論壇的許可權 檢視 發帖 投票 搜尋 使用者的許可權 使用者a 檢視 發帖 使用者b 檢視 使用者c 檢視 發帖 投票 搜尋 分析 有四種不同的許可權級別,總共2 4種許可權分配方式。像這樣許可權等級劃分和不同級別使用者的許可權分配採...

二進位制巧妙運用 二進位制存多個布林型別狀態值

使用第三個變數來接收 int c 0 c a c 等於1 a b a 等於2 b c b 等於1當然靈活運用,這種方式肯定是不推薦的啦!重新整理一下你對小學數學的理解 a a b a 等於3 b a b b 等於1 a a b a 等於2 既然是程式設計師,我們用程式設計師的方式來做一下,還可以深刻...

二進位制許可權

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