基于 RBAC 的 Net6 后台管理框架-BootstrapAdmin

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的 BootstrapAdmin由于前台采用 Bootstrap 布局样式,所以就叫做 BootstrapAdmin。

简介

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

主要功能

  • 通过配置与前台网站集成
  • 构建前台系统分层级菜单
  • 提供单一后台支持多种前台应用配置
  • 提供单点登录
  • 集成系统认证授权模块
  • 提供角色,部门,用户,菜单,前台应用程序授权
  • 提供字典表用于前台网站的个性化配置
  • 完全响应式布局(支持电脑、平板、手机等所有主流设备)
  • 内置多数据源支持,配置简单立即生效无需重启
  • 内置数据内存缓存机制,页面快速响应
  • 内置数据 操作日志 与用户 登录日志

数据库结构

  • 通过角色获取到用户 Roles-UserRoles-Users
  • 通过角色获取到导航菜单 Roles-NavigationRoles-Navigations
  • 通过角色获取到部门以及部门用户 Roles-RoleGroup-Groups-UserGroup-Users
  • 通过角色获取到授权应用 Roles-RoleApp

安装教程

开发环境搭建教程

  • 安装 .net core 3.1.100 SDK
  • 安装 Visual Studio 2019 (最小版本号 16.4)
  • 获取本项目代码 BootstrapAdmin:https://gitee.com/LongbowEnterprise/BootstrapAdmin
  • 数据库对本项目开发环境默认为 SQLite 数据库无需任何操作请查看 数据库配置
  • 系统登录用户名与口令
    用户名:Admin/User
    密码:123789

开发环境使用

  • 后台工程 Bootstrap.Admin
  • 前台工程 Bootstrap.Client

命令行启动,分别到 Bootstrap.Admin 工程与 Bootstrap.Client 工程下执行

dotnet run 

或者运行带参数的命令行

dotnet run --project ./src/admin/Bootstrap.Admin
dotnet run --project ./src/client/Bootstrap.Client

多项目启动

界面

前端权限实现原理

Startup 容器注册网页元素权限控制服务
services.AddButtonAuthorization();
内部实例化
DefaultButtonAuthorization
并且使用
DBHelper.AuthorizateButtons
方法作为默认网页元素授权检查判断函数
网页在服务器端进行 Razor 视图引擎渲染时通过asp-auth属性标签自动调用
AutorizateTagHelper.Process()
Process 方法内部通过容器注入的服务调用
IButtonAuthorization.Authorizate()
对网页元素进行权限检查,通过检查则对控件进行渲染,从而达到网页元素权限控制

更多内容:https://gitee.com/LongbowEnterprise/BootstrapAdmin