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 如果为真表示有此权限

  • 相关阅读:
    Ubuntu--更改国内镜像源(阿里、网易、清华、中科大)
    mui做直播推流及时分秒计时器的实现用例
    远程连接
    Dockerfile
    Docker-compose
    Docker基础命令
    python中执行其他的python脚本(三):
    python中执行其他的python脚本(二):
    python中执行其他的python脚本(一):
    树莓派4B源码编译opencv3.4.1
  • 原文地址:https://www.cnblogs.com/ddyq/p/2099008.html
Copyright © 2011-2022 走看看