.NET Core/.NET5/.NET6 开源项目汇总5:权限管理系统项目
企业管理系统一般包含后台管理UI、组织机构管理、权限管理、日志、数据访问、表单、工作流等常用必备功能。下面收集的几款优秀开源的管理系统,值得大家入门学习。
插件化架构,又称微核架构,指的是软件的内核相对较小,主要功能和业务逻辑都通过插件实现的架构。

插件化架构一般有两个核心概念:
- 内核
- 插件
内核通常只包含系统运行的最小功能,以及定义插件必须符合的接口;插件则是互相独立的模块,一般只包含单一的功能。
插件化技术并不是一个新兴的技术,早期很多基于COM开发的WIN32程序其实都是插件化的系统。在.NET/.NET Core中,也有许多插件化的实现方案,例如,开源框架ABP, 开源的内容管理系统DotNetNuke, 电子商务框架NopCommerce。

《.NET Conf 2020 - 基于ASP.NET Core构建可热插拔的插件化系统》
作者:Lamond Lu
项目地址:https://github.com/lamondlu/CoolCat
博客:http://www.cnblogs.com/lwqlun
《从零开始实现 ASP.NET Core MVC 的插件式开发》系列博客:https://mp.weixin.qq.com/s/uOtvUHkCoMu8cpnsjX4Gpg
OSharpNS 全称 OSharp Framework with .NetStandard2.x,是一个基于.NetStandard2.x开发的一个.NetCore快速开发框架。这个框架使用最新稳定版的.NetCore SDK(当前是.NET Core 3.0),对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、权限授权等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。
相关示例项目:
- Vue版本(vben): https://github.com/i66soft/osharp-vben
- Mvc版本(layui): https://github.com/i66soft/osharp-layui
- Blazor版本(BootstrapBlazor): https://github.com/i66soft/osharp-blazor
框架的工程组织结构如下:

框架特性
- 模块化的组件系统设计
- 自动化的依赖注入注册机制UnitOfWork-Repository模式,EFCore上下文动态构建
- DependencyAttribute特性标注方式
- 自动化的注册机制
- 基于AspNetCore的Identity的身份认证设计系统
- 设计了一个强大的功能权限与数据权限的授权体系集成 Swagger 后端API文档系统
- 功能权限授权流程
- 功能权限验证流程
- 数据权限授权流程
- 数据权限验证流程
- 代码生成器
文档中心 https://docs.osharp.org/quick/start/
开源地址 https://github.com/dotnetcore/OSharp
博客园:https://www.cnblogs.com/laozhang-is-phi/
Bilibili:https://space.bilibili.com/387802716
直播间:https://live.bilibili.com/21507364
Blog.Core 开箱即用的企业级前后端分离【 .NET Core5.0 Api + Vue 2.x + RBAC】权限框架。由国内微软MVP“老张的哲学”出品。相比ABP Zero,Blog.Core 更为短小精干,非常适合管理系统以及互联网项目的开发。
项目单体部署,并发在400~500,一切正常(不保证自己的各种错误写法)。如果搭配负载,效果更好。已被多家公司所使用:点击查看列表。

开源地址:https://github.com/anjoy8/Blog.Core
系统架构图

框架模块:
- 采用
仓储+服务+接口的形式封装框架; - 异步 async/await 开发;
- 接入国产数据库ORM组件 —— SqlSugar,封装数据库操作;
- 支持自由切换多种数据库,MySql/SqlServer/Sqlite/Oracle/Postgresql/达梦/人大金仓;
- 实现项目启动,自动生成种子数据 ;
- 五种日志记录,审计/异常/请求响应/服务操作/Sql记录等;
- 支持项目事务处理(若要分布式,用cap即可);
- 设计4种 AOP 切面编程,功能涵盖:日志、缓存、审计、事务 ;
- 支持 T4 代码模板,自动生成每层代码;
- 或使用 DbFirst 一键创建自己项目的四层文件(支持多库);
- 封装
Blog.Core.Webapi.Template项目模板,一键重建自己的项目 ; - 搭配多个前端案例供参考和借鉴:Blog.Vue、Blog.Admin、Nuxt.tbug、Blog.Mvp.Blazor ;
- 统一集成 IdentityServer4 认证 ;
组件模块:
- 提供 Redis 做缓存处理;
- 使用 Swagger 做api文档;
- 使用 MiniProfiler 做接口性能分析 ;
- 使用 Automapper 处理对象映射;
- 使用 AutoFac 做依赖注入容器,并提供批量服务注入 ;
- 支持 CORS 跨域;
- 封装 JWT 自定义策略授权;
- 使用 Log4Net 日志框架,集成原生 ILogger 接口做日志记录;
- 使用 SignalR 双工通讯 ;
- 添加 IpRateLimiting 做 API 限流处理;
- 使用 Quartz.net 做任务调度(目前单机多任务,集群调度暂不支持);
- 支持 数据库
读写分离和多库操作 ; - 新增 Redis 消息队列 ;
- 新增 RabbitMQ 消息队列 ;
- 新增 EventBus 事件总线 ;
- 调试中 - 统一聚合支付;
- 计划 - 数据部门权限;
- 计划 - ES 搜索;
微服务模块:
- 可配合 Docker 实现容器化;
- 可配合 Jenkins 实现CI / CD;
- 可配合 Consul 实现服务发现;
- 可配合 Ocelot 实现网关处理;
- 可配合 Nginx 实现负载均衡;
- 可配合 Ids4 实现认证中心;
NetModular 是一款为中小型企业而生的基于.Net Core和 Vue.js 的业务模块化以及前后端分离的快速开发框架,最终目的是能够让中小团队快速搭建公司内部开发平台。
Gitee:https://gitee.com/laoli/NetModular


- 后端技术:.Net Core 3.1、Dapper、Serilog、AutoMapper、FluentValidation、Swagger、RabbitMQ、Redis、EPPlus。
- 前端技术:Node.js 10+、Vue.js 2.6+、Vue CLI、Vuex、VueRouter、Element-UI。
- 前端框架 NetModular.UI:前端采用 Vue.js 全家桶+Element UI 开发,也是基于模块化思想设计。源码如下:https://github.com/iamoldli/NetModular.UI
- 前端皮肤:前端支持自定义皮肤功能,框架本身提供了两套皮肤,其中一套已经内置作为默认皮肤,另外一套需要单独安装,源码如下:https://github.com/iamoldli/NetModular.Skins.Classics
- 模块列表。本仓库只包含基础框架以及权限管理(Admin)模块代码,其它模块请点击以下链接查看。

OpenAuth.Core 是大神李玉宝的又一著作,该项目目前收录于 dotNET China ,并且被Gitee评选为GVP项目(Gitee最有价值的开源项目)。
OpenAuth.Core 是.NET权限管理及快速开发框架、最好用的权限工作流系统。源于Martin Fowler企业级应用开发思想及最新技术组合(IdentityServer、EF、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui等)。已成功在docker/jenkins中实施。核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选。
Gitee:https://gitee.com/dotnetchina/OpenAuth.Net
强大的工作流引擎

项目分为3个版本:
- OpenAuth.Net开源版
采用.NET 4.5/.NET 5 MVC + LayUI 前后端开发模式,更适合传统 .NET Framework 开发者使用,前端深度使用 LayUI 界面。

- OpenAuth.Core开源版
采用.NET Core MVC + LayUI 前后端开发模式,全新.NET Core 跨平台体验。在OpenAuth.NET基础上进一步优化代码结构。

- OpenAuth.Pro企业版
采用WebAPI+Vue的前后端完全分离模式,后端基于OpenAuth.Core WebAPI接口。前端SPA单页面模式,基于Vue全家桶。


Furion项目的作者【富察宏磊】是一位90后的优秀IT人才。

Furioin 是一款基于.NET5技术开发的功能强大、性能极致、文档完善、示例丰富、极易入门、快速开发、极易维护的Web框架。
功能模块

框架特点
- 全新面貌:基于
.NET 5平台,没有历史包袱 - 极易入门:只需要一个
Inject()即可完成配置 - 极速开发:内置丰富的企业应用开发功能
- 极少依赖:框架只依赖两个第三方包
- 极其灵活:轻松面对多变复杂的需求
- 极易维护:采用独特的架构思想,只为长久维护设计
- 完整文档:提供完善的开发文档
文档地址
开源地址
- Gitee:https://gitee.com/dotnetchina/Furion
- GitHub:https://github.com/monksoul/Furion
- Docker:https://hub.docker.com/r/monksoul/furion
- Nuget:https://www.nuget.org/packages/Furion
系列教程
- Furion 视频教程:https://space.bilibili.com/695987967
- Furion 使用例子:https://gitee.com/monksoul/furion-samples 可能大部分示例已经不通用
- Furion 系列教程:《学 .NET 5 从 Furion 开始》 系列
支持平台
- 运行环境
- Windows
- Linux
- MacOS
- Docker/K8S/K3S/Rancher
- Xamarin/MAUI
- 数据库
- SqlServer
- Sqlite
- Azure Cosmos
- MySql
- MariaDB
- PostgreSQL
- InMemoryDatabase
- Oracle
- Firebird
- 达梦数据库
- MongoDB
- 应用部署
- Kestrel
- Nginx
- Jexus
- IIS
- Apache
- PM2
- Supervisor
- 独立发布/单文件
- 容器(Docker/K8S/K3S/Rancher)
作者的其他优秀开源项目
- https://gitee.com/monksoul
- https://github.com/monksoul

本系统可以用于所有的 Web 应用程序,目前版本已经升级到 NET CORE 具备跨平台能力。数据库方面同时支持多种数据库,详细列表见后面数据库的详细列表,切换数据源仅需更改配置文件无需重启应用程序,配置简单灵活。UI 前端使用流行的 Bootstrap 框架布局对移动设备的兼容性非常好,自适应目前市场几乎所有终端设备。本系统还具备单一后台支持多前台的特色,提供 单点登录(SSO) 的能力。
使用 NET Core + Bootstrap + PetaPoco + HTML 5 + jQuery 构建的后台管理平台

特别说明
BootstrapAdmin 无需二次开发,要做的仅仅是与前台系统集成,前台系统模板工程为 Bootstrap.Client
项目原始出发点是把权限系统从业务系统中剥离出来,项目开发专注于功能,详细配置说明请点击 查看文档
主要功能
- 通过配置与前台网站集成
- 构建前台系统分层级菜单
- 提供单一后台支持多前台应用配置
- 提供单点登录
- 集成系统认证授权模块
- 提供角色,部门,用户,菜单,前台应用程序授权
- 角色对用户授权
- 角色对菜单授权
- 角色对部门授权
- 角色对应用程序授权(多个前台应用公用一个后台权限管理系统)
- 部门对用户授权
- 提供字典表用于前台网站个性化配置
- 完全响应式布局(支持电脑、平板、手机等所有主流设备)
- 内置多数据源支持,配置简单立即生效无需重启
- 内置数据内存缓存机制,页面快速响应
- 内置数据 操作日志 与用户 登录日志,跟踪记录用户 登录主机地点 浏览器 操作系统信息
优势
- 前台系统不用编写登录、授权、认证模块;只负责编写业务模块即可
- 后台系统无需任何二次开发,直接发布即可使用
- 前台与后台系统分离,分别为不同的系统(域名可独立)
- 可扩展为多租户应用
数据库
数据库支持列表如下:
MSSQL/Oracle/SQLite/MySql/MariaDB/Postgresql/Firebird/MongoDB
开源地址:https://gitee.com/dotnetchina/BootstrapAdmin
mvvm框架(WTM)是一个基于.NET Core 的快速开发框架。它支持LayUI、React和VUE。WTM有内置的代码生成器,以最大限度地提高开发效率。它是高效web开发的强大工具。
框架特征:
WTM提供了4种类型的ViewModel,涵盖了主流web应用程序的所有常见功能。
- CrudVM提供了最常见的数据添加、删除和修改功能。
- ListVM提供分页和导出功能。
- ImportVM、TemplateVM提供了通过excel导入的功能。
- BatchVM提供批操作功能。
- WTM有自己的代码生成器,这使得开发效率高、速度快。
- WTM提供了许多客户端控件,包括表单、网格、面板、对话框和许多其他常用控件。
- WTM提供内置用户、角色、用户组、数据权限、页面权限、菜单、日志、邮件、短信、文件等常用后端功能;
- WTM支持单点登录、门户和分布式数据库;
- WTM提供了与Redis、DFS等库的简化集成。
- WTM提供了用于构建用户界面的服务器端和客户端框架。
开源地址:https://github.com/dotnetcore/WTM
中文文档:http://wtmdoc.walkingtec.cn/

本计划采用年审制,每年重新审核项目是否满足以上条件。
- GVP 计划参与者并不是 Gitee 平台的官方人员,其观点和行为,仅代表个人,不代表 Gitee 平台的官方立场。
- GVP 计划参与者不得有违反国家规定、Gitee 网站规则的行为,否则将取消 GVP 计划参与者身份。
- 参与 GVP 计划后,不得大量发布广告或软文,否则 Gitee 平台有权永久取消 GVP 计划参与者身份。
- 申请参与 GVP 计划的项目不得恶意刷数,一经发现,Gitee 平台有权永久取消 GVP 计划参与者身份,并进行全平台通报。
- GVP 项目不允许删除,不允许转为私有项目。
.NET Core/.NET5/.NET6 开源项目汇总5:权限管理系统项目的更多相关文章
- .NET Core/.NET5/.NET6 开源项目汇总4:CMS、Blog项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架
系列目录 [已更新最新开发文章,点击查看详细] .NET Core 实现了跨平台,支持在 Windwos.Linux.macOS上开发与部署,但是也仅限于Web应用程序.对于Windows桌面 ...
- .NET Core/.NET5/.NET6 开源项目汇总10:实用工具
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总1:常用必备组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总2:任务调度组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总3:工作流组件
系列目录 [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...
- .NET Core/.NET5/.NET6 开源项目汇总7:电商项目
系列目录 [已更新最新开发文章,点击查看详细] 谈起.NET/.NET Core的企业级实战案例,电商项目是典型代表.其中高负载.高并发.高可用性等问题是考核.NET技术性能的重要指标.下面整 ...
- .NET Core/.NET5/.NET6 开源项目汇总8:Blazor项目
系列目录 [已更新最新开发文章,点击查看详细] Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 U ...
随机推荐
- C++入门教程之二:变量
C++入门教程之二:变量 变量,顾名思义,意思是变化的量.变量的定义是计算机语言中能储存计算结果或能表示值的抽象概念.一个基本的程序需要变量,因此变量是程序设计中的一大重点. 变量基本结构 var_t ...
- DLL注入技术(输入法注入)
输入法注入原理 IME输入法实际就是一个dll文件(后缀为ime),此dll文件需要导出必要的接口供系统加载输入法时调用.我们可以在此ime文件的DllMain函数的入口通过调用LoadLibrary ...
- 《Spring 手撸专栏》第 2 章:小试牛刀(让新手能懂),实现一个简单的Bean容器
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 上学时,老师总说:不会你就问,但多数时候都不知道要问什么! 你总会在小傅哥的文章前言 ...
- ES6学习-2 let
ES6 新增了let命令,用来声明变量.它的用法类似于var,但是let所声明的变量,只在let命令所在的代码块内有效. 1 { 2 let a = 10; 3 var b = 1; 4 } 5 co ...
- Linux下script命令录制、回放和共享终端操作script -t 2> timing.log -a output.session # 开始录制
Linux下script命令录制.回放和共享终端操作 [日期:2018-09-04] 来源:cnblogs.com/f-ck-need-u 作者:骏马金龙 [字体:大 中 小] 另一篇终端会话共 ...
- shell判断一个变量是否为空方法总结
shell中如何判断一个变量是否为空 shell编程中,对参数的错误检查项中,包含了变量是否赋值(即一个变量是否为空),判断变量为空方法如下: 1.变量通过" "引号引起来 1 2 ...
- 命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解:
7.stat命令 stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称". stat命令可以用于查看文件的存储信息和时间等信息,命令stat anacon ...
- 文本编辑_Vim&Vi
一.Vim.Vi文本编辑器 1️⃣:vi: Visual Interface,文本编辑器 2️⃣:文本:ASCII, Unicode 3️⃣:VIM - Vi IMproved 二.Vim.vi的特点 ...
- IDEA Git 项目实战场景
实战场景一:上班啦,从远程仓库克隆项目到本地仓库(Clone) 打开 IDEA,在 Check out from Version Control 下拉菜单选择 Git,如下: 在弹出窗口的 URL 地 ...
- [Django高级之forms组件]
[Django高级之forms组件] forms组件之校验字段 # 第一步:定义一个类,继承forms.Form # 第二步:在类中写字段,要校验的字段,字段属性就是校验规则 # 第三步:实例化得到一 ...