rbac具体能实现哪些厉害的功能?

weixin_38050602 2019-09-11 03:11:57
我举个例子,比如用户分为三种,一种普通用户,一种实名用户,一种高级用户。 普通用户只能创建个文章。 实名用户可以创建新闻。 高级用户可以使用网站皮肤。 如果我不用rbac,我可以设置一个字段,1是普通,2是实名,3是高级。执行action的时候我判断这个字段的值,不一样达到了权限控制了吗? 请问rbac有何高明之处?
...全文
107 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38058190 2019-09-11
  • 打赏
  • 举报
回复
1是普通,2是实名,3是高级。执行action的时候我判断这个字段的值 那如果,作为普通(1),有20个Controller,100个action,你是要在这100个action中每一个都判断,if(xx=1){}吗?然后我突然多了一个“4是vip”,你又一个一个action去判断吗?作为普通的,应要求,100个action有30个不能访问,又一个一个去修改? 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。 首先角色,普通、实名、高级 这就是角色 然后权限,你的action就是权限。 rbac你可以这么理解,你用户表设置一个字段,然后关联到角色表(普通、实名、高级)的id,然后这个角色拥有那些权限,就是action集合,那么,你只需要在一个地方,获取他的角色,然后找到对应的权限集,判断当前这个访问是否在这个集合里面,如果包含在集合里面说明有权限访问,如果不在集合里面,说明没权限访问。你要操作的,只需要给这个角色,增加或者删除对应的action即可。
weixin_38060626 2019-09-11
  • 打赏
  • 举报
回复
你这不就是rbac的简化变种嘛、 rbac就是已经实现了调用前的判断、权限的个性化定制。 你可以在rbac的轮子上直接造车,也可以从头造轮子。
weixin_38065208 2019-09-11
  • 打赏
  • 举报
回复
rbac的全拼是Role-Based Access Control,也就是基于角色的权限控制,在楼主举的例子中,其实已经有这个思想在里边了: 普通用户,实名用户和高级用户分别对应三种权限 创建文章,创建新闻和使用网站皮肤分别对应三种权限 不同角色的用户有着不同的权限 在你举的例子中,角色与权限是一对一的关系,但在实际使用中,一般是一对多的关系。说白了,rbac的组件呢就是用来实现这种一对多的权限控制的。

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧