我有几个页面包含访问位掩码,它只限制对给定用户的访问。每个用户都有自己的访问位掩码,用于与页面位掩码进行比较。
例如,我有以下页面和用户位掩码:
USER 0100
PAGE 0101
要检查用户是否有权访问某个页面,我会在页面和用户访问代码之间执行按位AND操作。如果此类操作的结果等于用户位掩码,则授予访问权限。
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”。
答案 0 :(得分:0)
我找到了这个问题的答案。如果必须匹配至少一个位,我可以检查公式的结果是大于还是大于1:USER&amp; PAGE&gt; = 1这样,如果至少有一位匹配,公式将为真。