zoukankan      html  css  js  c++  java
  • 如何做系统权限设计[摘录]

    最近看了别人的设计方法,大多以“整数”来表示权限值,如添加、浏览、删除和修改,分别用1、2、4、8这几个整数来代替,不过,各人的做法有所不同,举例如下:

    1. 用2的n次幂组成权限值的集合,如1、2、4、8、16...,某用户的权限值为其子集中的整数之和,如 7=1+2+4,5=1+4。如果要从数据库检索包含某几种权限的用户,则先把这几种权限值相加,假设和为k,然后select * from table where 1 and 用户权限值 = 'k';如果要判断某用户有哪些权限,则取出其权限值k,分别用k&1,K&2,K&4,k&16...,如果为真,则 表示有值等于“&”右边整数的权限,例如,如果k&4为真,则此用户有权限表中值等于4的权限;

    通用技术方式

    (权限列表)2 4 8 16 32

    权限值等于权限相加。

    权限值 20那么  二进制为10100

    1     0    1    0  0

    16   8    4    2   1       右到左依次 2的0次方  2的1次方   2的2次方   2的3次方 2的4次方 

    上下相乘结果为 16 和4 

    权限值 22那么  二进制为10110

    1     0    1    1  0

    16   8    4    2   1       右到左依次 2的0次方  2的1次方   2的2次方   2的3次方 2的4次方 

    上下相乘结果为 16 ,4,2 

    C#计算方式

    20&16=16 如果为真表示有此权限

  • 相关阅读:
    ioi1998 Polygon
    [Noip模拟题]Seq
    [noip模拟]分组行动
    入门OJ:photo
    Sgu167 I-country
    入门OJ:简单的网络游戏
    入门OJ:Coin
    ATT&CK实战系列
    Metasploit Framework(二)
    RoarCTF 2019
  • 原文地址:https://www.cnblogs.com/ddyq/p/2099008.html
Copyright © 2011-2022 走看看