探讨一个权限设计方案

lawbc 2011-07-07 05:24:37
我觉得权限包括:功能权限、资源权限、菜单权限、数据权限,在运用系统中,无论是bs还是cs中,都是很常见的一个功能
那么怎么来实现系统中的权限管理呢?本人没有开发过权限系统,只是上网看过很多帖子什么,比较迷惑,所以想请大家探讨
下怎么来设计权限

大概的功能是这样的:
1、可以根据不同角色(或权限)的用户使用不同的菜单,就是系统登录后左侧菜单是根据用户的角色或权限来读取的

2、可以对某一个功能进行权限控制,比如用户A可以删除新闻,用户B可以添加用户,如果没有权限就不显示按钮或者链接等

3、可以对某一资源进行权限控制,比如新闻就是一种资源,新闻的创建者可以对新闻进行修改、删除,浏览
但是不能审核,其他普通用户(或者说属于某个部门或某个组的用户)可以浏览,但不能删除

4、可以对数据(资源)进行权限控制,比如订单,用户A可以浏览金额为0-1000元的订单,用户B可以浏览0-5000的订单


1、2、3这3个功能基本上都需要用上,第四个比较少用,那么在系统中应该怎么来设计才比较合理,需要考虑数据库查询的复杂度和程序的复杂度

再来说下程序需要怎么判断权限:
1、菜单权限就不说了,这个最简单了,只要查询出来用户拥有的权限菜单就可以了
2、对于程序中,用户如果没有某个按钮的操作权限,那么应该隐藏,这个怎么做呢,我的想法是把按钮的页面url,
按钮Id 什 么的都入库,跟具体的权限管理起来,只要就可以判断了。
3、当用户拥有某个按钮的权限,那么就必须显示出来,那么当用户点击这个按钮提交的时候,是否需要进行一次权限判断呢
如果需要,那么怎么做



...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
燃烧土豆 2011-07-07
  • 打赏
  • 举报
回复
这种贴回复起来其实很累,我看我还是看看热闹了
燃烧土豆 2011-07-07
  • 打赏
  • 举报
回复
角色--用户,菜单--功能


子夜__ 2011-07-07
  • 打赏
  • 举报
回复
druigang 2011-07-07
  • 打赏
  • 举报
回复
你想实现的简单点的话,就每个角色都有自己独立的页面,这样的话页面多了,难度降下来了
想用一个页面实现所有人的功能,假如用户类型不是很多的话你可以根据权限类型用显示隐藏来实现某些按钮的是否可见,这样的话执行的时候不用判断。因为只有那个有权限的人才可以进入,这样的缺点是页面上的判断会很多。
你的一种想法是把页面按钮那些定义到数据库中,可是数据库中你得表明它是什么控件,假如逻辑复杂的话你的数据库定义就难了
冰川711 2011-07-07
  • 打赏
  • 举报
回复
我个人对于权限这块的看法一直是

化整为零

化成若干个功能,,


一个究级管理员,可以选择不同的功能建立角色, 然后将角色分配给用户,,



功能\ / 用户
功能- 角色 - 用户
功能/ \ 用户
flyerwing 2011-07-07
  • 打赏
  • 举报
回复
那么多角色,一个就成了.

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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