1
我有幾個包含訪問位掩碼的頁面,這些頁面僅限於給定用戶的訪問。每個用戶都有自己的訪問位掩碼,用於比較頁面位掩碼。用於檢查誰有權訪問的位掩碼
例如,我有以下頁面和用戶位掩碼:
USER 0100
PAGE 0101
要檢查用戶訪問一個網頁,我頁面和用戶訪問代碼之間進行按位與運算。如果這種操作的結果等於用戶位掩碼,則授予訪問權限。
USER & PAGE == USER <--- ACCESS OK
USER & PAGE != USER <--- NO ACCESS
對於上面的例子:
0100 & 0101 == 0100 <--- ACCESS OK
我的解決辦法是偉大的工作,直到我已經創建了更廣泛的訪問權限的用戶:
USER 1100
PAGE 0101
1100 & 0101 = 0100 <--- NO ACCESS
在用戶的掩碼附加的比特毀了我的訪問驗證方法。我該如何解決它?
要授予訪問權限,對於USER和PAGE位掩碼之間的AND操作,至少一位必須返回「true」。
'要授予訪問權限,至少有一位必須返回「真」,以便USER和PAGE位掩碼之間的AND操作。「是不是您先前對USER&PAGE == USER <--- ACESS OK錯誤的說法? – mjuarez
這個公式的問題是當用戶擁有更多權限時,它會使公式爲false。在例子0100&0101 = 0100(OK),1100&0101 = 0100(FALSE) – kazy
我找到了這個問題的答案。如果至少有一位必須匹配,我可以檢查公式的結果是大於還是等於1: USER&PAGE> = 1 這樣,如果至少有一位會比賽。 – kazy