当前位置: 首页 > news >正文

怎么建自己的手机网站淘宝网页版登录入口电脑版

怎么建自己的手机网站,淘宝网页版登录入口电脑版,企业怎样做网站,做图海报网站基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中,不同的权限被编码为2的幂次方 (例如1、2、4、8等),每个权限对应一个独立的二进制位(可想而知运算速度是非常快的)。通过将这些权限值组合在一起形成一个…

基于位的权限系统是一种利用二进制位运算进行权限管理的技术。在这种系统中,不同的权限被编码为2的幂次方 (例如1、2、4、8等),每个权限对应一个独立的二进制位(可想而知运算速度是非常快的)。通过将这些权限值组合在一起形成一个整数(比如1+2+4),可以表示用户所拥有的所有权限集合。

将不同的权限组合成一个整数,通过位运算来快速且方便地判断用户是否具有某种或某几种权限。

例如,在权限管理中: 

查看权限对应值为 1、添加权限对应值为 2

修改权限对应值为 4、删除权限对应值为 8
假设有一个用户,他拥有查看修改权限,那么他的权限值就是 1 + 4 = 5(二进制是 0101)。 

验证用户权限时:

  • 检查用户是否有查看权限:用户权限 & 1 是否等于 1。
  • 检查用户是否有修改权限:用户权限 & 4 是否等于 4。
  • 检查用户是否有查看和修改权限: 用户权限 &(1|4)是否等于(1 + 4) 。

如果要赋予用户所有权限,则权限值将是 1 + 2 + 4 + ..直到覆盖所有权限位,这样用户的权限值就是一个包含了所有有效权限位均为1的二进制数。
这种二进制算法用于权限管理既高效又节省存储空间,非常适合于大型系统的权限控制。

以下是实现代码示例:

const PERMISSINOS = {VIEW: { value: 1, name: "VIEW" },       // 权限值为 1,名称为 VIEWADD: { value: 2, name: "ADD" },         // 权限值为 2,名称为 ADDEDIT: { value: 4, name: "EDIT" },       // 权限值为 4,名称为 EDITDELETE: { value: 8, name: "DELETE" }    // 权限值为 8,名称为 DELETE
};// 获取用户拥有的权限列表
function getPermissions(userPermissions) {const userHasPermissions = [];for (let permission in PERMISSINOS) {if (hasPermission(userPermissions, PERMISSINOS[permission].value)) {userHasPermissions.push(PERMISSINOS[permission].name); // 将权限名称添加到数组}}return userHasPermissions;
}// 判断用户是否拥有某个权限
function hasPermission(userPermissions, permission) {return (userPermissions & permission) === permission;  // 进行位运算判断
}let userPermissions = 7;   // 用户权限值为 7,即二进制 0111console.log(getPermissions(userPermissions)); // 返回 ["VIEW", "ADD", "EDIT"],即用户拥有 VIEW、ADD、EDIT 三个权限

当userPermissions = 7;  则返回VIEW ADD EDIT三个权限内容

当userPermissions = 5   则返回VIEW  EDIT两个权限内容

 总结:

位的权限系统的优势在于存储效率是极高的,需要利用一个数字,就能够表示多种权限,极大的节省了空间,且处理速度是非常快的,因为位运算比传统的循环判断要来的快,尤其在处理数据时更为的高校(大数据)。

扩展性也是非常强的,添加新的权限只需要选择下一个未使用的2的幂次方即可。并不会影响现有的权限结构。

不足点:可读性并不良好,对于非程序员或对于未操作不熟悉开发者来说,直接查看权限数值可能难以理解这个数值所代表的具体的权限集合。而且如果要去处理非常复杂的权限模型,比如层级权限,动态权限,基于位的权限系统可能不是那么灵活。

对于边界的条件问题,也会存在一定障碍,如果权限的数量超出了一定的范围,例如32位或64位整数所代表的数量,那么则需要重新去计算我们的一个数据结构

http://www.yayakq.cn/news/732515/

相关文章:

  • 邯郸手机网站建设微商城怎么做
  • 餐厅网站建设什么科目施工企业绩效考核管理办法
  • 购物网站建设目标客户分析论文怎样设网站
  • 济南网站开发企业富利建设集团有限公司网站
  • 创建一个网站主页邯郸网站设计培训
  • 江苏荣邦建设有限公司网站北京网站推广排名公司
  • 常德农科院网站wordpress3.8.3
  • wordpress图书seo网站查询工具
  • 做网站有弹窗叫什么263企业邮箱怎么注册
  • wordpress站点统计做区块链的网站
  • 怎么用自己电脑做网站免费图片在线制作
  • 网络信息安全网站开发教程柳江企业网站建设价格
  • 计算机基础网站建设和网络安全wordpress主题首页主体
  • 上海做网站品牌搜索引擎优化是什么
  • 网站首页一般做多大尺寸微信公众号同步wordpress
  • 网站分类目录查询做响应式网站费用
  • 礼服外贸网站南京百度推广网站
  • 网站建设费能算作广告费用吗自适应网站内容做多大尺寸
  • 聊城网站推广wordpress弹窗视频
  • wordpress 修改站点基于php的个人网站设计论文
  • 怎么看网站的备案信息做公司网站需要什么
  • 湖南建网站怎么做免费视频网站吗
  • 四川杰新建设工程网站上海vi设计公司有哪些
  • 一流高职院校建设网站一般做网站空间大概多少钱
  • ps如何做网站横幅什么叫app是什么意思
  • 太原新站优化php后台网站开发教程
  • 网站建设一年多少钱济南企业网站
  • 重庆个人网站建设万网 网站建设方案书范文
  • 客户可以自主发帖的网站建设wordpress主题宽度修改
  • 网站开发需要经过的几个主要阶段有了空间怎么做网站