FineUI 官方论坛

标题: AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)! [打印本页]

作者: sanshi    时间: 2020-3-26 10:30
标题: AppBoxCore - 细粒度权限管理框架(EFCore+RazorPages+async/await)!


[attach]12378[/attach]

作者: houzhipeng    时间: 2020-3-27 13:36
本帖最后由 houzhipeng 于 2020-3-27 14:31 编辑

支持一下,好东西呀!
大致看了一下,其他都可以,就是权限这一块在页面上是硬编码校验的,不够灵活,要是纯数据库配置就好了,希望改进一下

作者: sanshi    时间: 2020-3-29 21:32
houzhipeng 发表于 2020-3-27 13:36
支持一下,好东西呀!
大致看了一下,其他都可以,就是权限这一块在页面上是硬编码校验的,不够灵活,要是纯 ...

最初的版本就是数据库配置的,其实这样更不灵活。

因为业务逻辑千变万化,很多时候你根本不知道哪个地方需要做权限验证,除非具体到某个页面,所以在页面上编码是合理的。并且权限应该是开发时就已经明确定义好的,运行时只涉及分配权限,不可能新增权限。
作者: houzhipeng    时间: 2020-3-30 10:45
本帖最后由 houzhipeng 于 2020-3-30 10:49 编辑
sanshi 发表于 2020-3-29 21:32
最初的版本就是数据库配置的,其实这样更不灵活。

因为业务逻辑千变万化,很多时候你根本不知道哪个地方 ...

这点我不赞同,权限基本就分为读取,新增,保存,删除;除了访问权限,在页面上就是以按钮的方式控制的,
在分配权限的时候,你可以读取该页面上的所有按钮元素(这个不是什么难事吧?),进行勾选,然后保存在数据库里
用户访问该页面,获取该页面的所有权限 控制按钮的启用状态。。
我原来做的winfrom项目就是这样干的,反射获取页面上所有按钮控件。
不用想我也知道,你们FineUI也应该有该页面所有控件的集合的对象

作者: sanshi    时间: 2020-3-30 11:33
houzhipeng 发表于 2020-3-30 10:45
这点我不赞同,权限基本就分为读取,新增,保存,删除;除了访问权限,在页面上就是以按钮的方式控制的,
...
权限基本就分为读取,新增,保存,删除;除了访问权限

这个思路其实有很大的局限性,早在 2012年,AppBox v3.0 之前的版本就是这样实现的,这也是网上大部分权限管理系统通用的做法:
https://www.cnblogs.com/sanshi/p/3274824.html
[attach]12380[/attach]

正如我在这篇文章说的那样,每个页面都不尽相同,有很多特殊情况。

比如在用户管理页面,表格行中有个【修改密码】按钮,如果要控制这个按钮,就需要一个特殊的权限!

比如想控制页面上有一大段提示信息,只对特定的角色显示,又需要一个权限。

比如我先控制页面上某些按钮(可能是汇总,流程,操作之类的)只对特定的权限显示,可能需要好多个特殊的权限。

总之这样的需要会随着项目的变大逐渐增多,所以将权限扁平化,和自定义化是有必须要的。





欢迎光临 FineUI 官方论坛 (https://www.fineui.com/bbs/) Powered by Discuz! X3.4