C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

时间:2021-12-07 03:43:23

业务系统里经常会需要计算类似的树形权限树的业务需求

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等。

2:还需要很直观的看到,整个权限的树形关系,一目了然的那种。

3:程序调用简单,写代码很容易能调用我们写好的函数。

4:程序稳定,bug 少,考虑周全。

直接上图:

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

在模块菜单定义里,需要一个数据权限项的设定,设定方式如下图

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树

代码调用方法:

            BasePermissionScopeManager permissionScopeManager = new Business.BasePermissionScopeManager(BaseSystemInfo.UserInfo);
// 目标用户的主键
string userId = "";
// 对什么权限进行权限树运算?
string permissionCode = "Resource.ManagePermission";
// 权限的名称可以为null,可以忽略的参数
string permissionName = "管理权限";
// 获取到用户权限树递归的用户主键
string[] userIds = permissionScopeManager.GetPermissionTreeUserIds(userId, permissionCode, permissionName);
// 显示输出用户主键列表,你可以任意加工这些参数结果数据了
foreach (var user in userIds)
{
System.Console.WriteLine("user:" + user);
}

每个功能看了,我们都有能力实现,但是很多时候没那么多时间,因为你平时还需要干什么多事情,更有价值的事情,有些功能你看一下2个小时就会用了,但是你自己实现一下需要2周才能开发好,若你的生命又是很有价值,那你可以考虑有偿购买一个组件源码,然后用2个小时把问题搞定了就可以了。因为组件有1000个功能,你没连续的2000个小时从头到尾都实现好。因为你的生命很宝贵,你需要有时间去谈恋爱,陪孩子,陪客户,管理项目,学习提高自己,锻炼身体,合理的休息。

当生命没多少价值时,浪费就浪费了,重复建设就重复建设了,就当是锻炼,提高自己了就可以了。反正有的是时间,最不值钱的就是时间。

C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树