关于权限管理的疑问,请朋友给些建议

oktell 2009-03-31 04:25:17
最近我遇到一个疑惑,请各位高手指点一下。

关于用户/角色/权限的问题,Asp.Net有一套自己的验证方式,也可以自己写一套权限控制。我要达到的效果就是可以控制页面上的按钮。

比如人事档案管理中,同一个页面,有“新建”、“编辑”、“查看”等功能,不同角色的人可以有不同的权限,如人事管理员拥有所有权限,但薪酬管理员只能有“查看”功能。

当然,常规的页面控件功能还要有,比如某些统计报表功能,只有单位经理拥有权限,普通员工就无打开。

请问,类型这种情形,我是用Asp.Net自有的控制功能呢,还是需要自己写?

谢谢!
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
oktell 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 oktell 的回复:]
好,非常感谢各位朋友的支持。

那么,这里我又有一个疑问:如何控件页面内的操作权限呢?

还是以人事档案为例,假如人事管理员用户,则“新建”、“编辑”、“查询”、“查看详情”按钮可用,假如薪酬管理员登录并打开同一页面,则只有“查询”和“查询详情”按钮。

这里我打算用Repeart控件实现,有些问题需要解决(假如每个页面有唯一的名字):

1)这些功能权限是在什么时候读取?

  a、如果在用户登录时读取,那么用什么存储较为合适,用ArrayList还是HashTable呢?我计划在用户登录时,就读取用户的所有权限,并将其塞入ArrayList中。

  b、在页面打开时读取,这样就需要连接数据库,可能性能方面需要考虑一下。

2)按钮的事件如何解决?(假如这些命令以LinkButton的形式呈现)
 
  由于命令按钮是动态出现的,出现的个数也一样,所以我们不可能直接在后台写按钮的后台代码。那么这需要用到委托吗?是这样解决吗?

欢迎朋友继续讨论。
[/Quote]

还请CSDN的朋友继续讨论一下,谢谢了。
oktell 2009-04-02
  • 打赏
  • 举报
回复
好,非常感谢各位朋友的支持。

那么,这里我又有一个疑问:如何控件页面内的操作权限呢?

还是以人事档案为例,假如人事管理员用户,则“新建”、“编辑”、“查询”、“查看详情”按钮可用,假如薪酬管理员登录并打开同一页面,则只有“查询”和“查询详情”按钮。

这里我打算用Repeart控件实现,有些问题需要解决(假如每个页面有唯一的名字):

1)这些功能权限是在什么时候读取?

a、如果在用户登录时读取,那么用什么存储较为合适,用ArrayList还是HashTable呢?我计划在用户登录时,就读取用户的所有权限,并将其塞入ArrayList中。

b、在页面打开时读取,这样就需要连接数据库,可能性能方面需要考虑一下。

2)按钮的事件如何解决?(假如这些命令以LinkButton的形式呈现)

由于命令按钮是动态出现的,出现的个数也一样,所以我们不可能直接在后台写按钮的后台代码。那么这需要用到委托吗?是这样解决吗?

欢迎朋友继续讨论。
指间、魔法师 2009-04-01
  • 打赏
  • 举报
回复
把权限存放到数据库中
人生就是赌 2009-04-01
  • 打赏
  • 举报
回复
把每个功能编号,然后存进数据库,

创建角色,为角色分配权限,即分配功能编号

给合适的人以合适的角色编号
判断时 ,如果该角色有这个功能编号就通过,没有就打住
生成菜单时,有这个功能编号时就生成功能连接,没有就不要生成
oktell 2009-04-01
  • 打赏
  • 举报
回复
朋友们还有更好的解决方案吗?请赐教。

谢谢。
oktell 2009-03-31
  • 打赏
  • 举报
回复
四楼朋友的“业务权限”和“操作权限”这两个概念不错。

先谢谢各位朋友了!
WizardBear 2009-03-31
  • 打赏
  • 举报
回复
自己写吧,用微软的东西有一点点变化就抓狂了:

页面控制属于业务权限;页面内按钮控制,属于操作权限;
每个页面加载时,根据当前用户的这两个权限的设置情况,初始化页面就OK了。
LXHGDDY 2009-03-31
  • 打赏
  • 举报
回复
做项目的时候也遇到这个问题,一般我们都把权限放在数据库中啊,从数据库读取权限啊
hon 2009-03-31
  • 打赏
  • 举报
回复
你的权限控制要想细化还是自己写。你可以想拿自带的试一下。
cpp2017 2009-03-31
  • 打赏
  • 举报
回复
最好自己写比较灵活一点.

62,268

社区成员

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

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

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

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