请大家推荐一个C# WinForm使用的权限管理框架

[大楚] 2016-08-01 04:01:59
可以是RBAC的,也可以是其它模式的,可以控制菜单(窗体)的访问,也可以控制字段或数据的访问,
自己找不到合适的;
或者给聊聊实现的思路算法也可以,谢谢。

Access Control
...全文
1438 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
[大楚] 2016-08-03
  • 打赏
  • 举报
回复
引用 2 楼 daiqianjie 的回复:
请看《31天学会CRM项目开发》随书winform项目,企业级客户关系管理系统,有完善的菜单导航、组织结构、权限管理等。
谢谢,百度一下看看。
[大楚] 2016-08-03
  • 打赏
  • 举报
回复
引用 3 楼 xuanbg 的回复:
RBAC也好,别的什么也好,最后落在数据库里面的无非就是谁能干些什么,又不能干些什么(这个很少有人去实现)。那么,你在用户登录后,就可以通过一个接口返回这个数据,告诉客户端这个用户能够使用哪些业务模块,通过这个数据来构造你的导航菜单(一般就是左侧的树形列表)。当用户点击导航菜单时,加载对应的MDI窗体。在初始化这个窗体的时候,可以通过接口来查询这个用户被授予了哪些操作权限,然后按照权限来使工具栏的按钮可用或不可用。这样,前端的权限就应用上去了。至于后端的权限的应用,那就是鉴权了。简单地说,就是调用对应接口时,在接口上再根据用户身份做一次验证,同时,也验证一下这个用户有没有权限来做这个事情。
谢谢指导,挺好的思路, 有相应的数据结构可以参考吗?
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
数据权限在前端的应用,就需要在原数据之外,再增加一个属性来描述该行数据是只读还是读写。在列表中选中的数据行如果是只读,那么对应的编辑、删除操作应该是不可用状态。如果连只读权限都没有,那么直接就获取不到。要实现这个也很简单,把数据权限列表和要读取的数据根据生产者Join一下,该有的权限标识自然就附加上去了,不该有的数据自然也就select不出来了。在后端的应用,同样也需要进行校验,当然,仅仅需要对编辑和删除操作进行校验就可以了。
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
数据权限其实也是一样的道理,你可以把数据库里面一行行的数据视为特定的资源。分配资源就是分配权限,只不过这个资源并不固定罢了。所以,我们就要转变一下思路,给这些可变的且不断增长的资源打上固定的标签。对于数据来说,不可能凭空自己冒出来,所以,任何的数据都是具有生产者这个属性。我们可以把这个标识为某个用户,也可以标识为某个组织,当然也可以同时进行标识。那么,数据的生产者就可以作为固定的标签用来标识资源。分配数据权限,也就是把某用户/组织生产的数据作为资源授权给某人进行查看、编辑、删除。抽象一下,查看就是只读权限,编辑和删除就是读写权限。
software_artisan 2016-08-01
  • 打赏
  • 举报
回复
RBAC也好,别的什么也好,最后落在数据库里面的无非就是谁能干些什么,又不能干些什么(这个很少有人去实现)。那么,你在用户登录后,就可以通过一个接口返回这个数据,告诉客户端这个用户能够使用哪些业务模块,通过这个数据来构造你的导航菜单(一般就是左侧的树形列表)。当用户点击导航菜单时,加载对应的MDI窗体。在初始化这个窗体的时候,可以通过接口来查询这个用户被授予了哪些操作权限,然后按照权限来使工具栏的按钮可用或不可用。这样,前端的权限就应用上去了。至于后端的权限的应用,那就是鉴权了。简单地说,就是调用对应接口时,在接口上再根据用户身份做一次验证,同时,也验证一下这个用户有没有权限来做这个事情。
血战31天 2016-08-01
  • 打赏
  • 举报
回复
请看《31天学会CRM项目开发》随书winform项目,企业级客户关系管理系统,有完善的菜单导航、组织结构、权限管理等。
Poopaye 2016-08-01
  • 打赏
  • 举报
回复
构造函数完了以后,把该隐藏的隐藏掉不就行了?

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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