Go to file
Argo-MacBookPro 1c8405a1cf 单元测试:增加工程属性<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> 2019-02-16 11:26:49 +08:00
Bootstrap.Admin 升级组件:依赖组件升级到最新版 2019-02-13 12:32:33 +08:00
Bootstrap.Client 升级组件:依赖组件升级到最新版 2019-02-13 12:32:33 +08:00
Bootstrap.Client.DataAccess 升级组件:依赖Bootstrap.Security.DataAccess升级到1.5,Longbow.Data升级到2.2.5 2019-02-14 09:22:43 +08:00
Bootstrap.DataAccess 升级组件:Longbow组件升级到2.2.7移除LgbHttpClient对象,使用HttpClientExtensions扩展方法 2019-02-14 14:51:25 +08:00
Bootstrap.DataAccess.MongoDB 升级组件:依赖组件升级到最新版 2019-02-13 12:32:33 +08:00
DatabaseScripts 更新脚本:Postgresql脚本全部更改为小写 2019-01-21 09:55:25 +08:00
Keys 更新工程:移除Build Event,移动snk文件到项目工程内 2018-05-19 21:19:13 +08:00
UnitTest 单元测试:增加工程属性<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> 2019-02-16 11:26:49 +08:00
.gitignore 更新工程:增加DB目录下UnitTest.db文件 2019-01-12 15:33:57 +08:00
.tfignore 初始化BootstrapAdmin解决方案 2016-10-20 22:17:04 +08:00
BootstrapAdmin.sln 更新文档:更新首页介绍文档,增加配置项 2019-02-15 21:22:19 +08:00
README.md 更新文档:更新首页介绍文档,增加配置项 2019-02-15 21:22:19 +08:00

README.md

BootstrapAdmin

项目介绍

使用HTML5+jQuery + NET Core 2.2 + Bootstrap4.1 + PetaPoco构建的后台管理平台主要功能如下

  1. 通过配置与前台网站集成
  2. 构建前台系统分层级菜单
  3. 提供单点登录
  4. 集成系统认证授权模块
  5. 提供角色,部门,用户,菜单授权
    角色对用户授权
    角色对菜单授权
    角色对部门授权
    部门对用户授权
  6. 提供字典表用于前台网站个性化配置
    优势:前台系统,不用编写登录、授权、认证模块;只负责编写业务模块即可

数据库

数据库支持列表如下:

  1. MSSQL
  2. Oracle
  3. SQLite
  4. MySql
  5. MariaDB
  6. Postgresql
  7. Firebird
  8. MsAccess
  9. MongoDB

功能列表

  1. 系统登录
    支持新用户注册
  2. 后台管理
  3. 个人中心
  4. 返回前台
    通过字典表配置,可以直接返回前台页面
  5. 网站设置
    设置网站标题与页脚;设置网站样式;查看系统缓存
  6. 菜单管理
  7. 用户管理
  8. 角色管理
  9. 部门管理
  10. 字典表维护
  11. 站内消息
  12. 任务管理
  13. 通知管理
  14. 系统日志
  15. 程序异常
  16. 工具集合

安装教程

  1. 安装 .net core 2.2 sdk 官方网址
  2. 安装 Visual Studio 2017 官方网址
  3. 获取本项目代码 BootstrapAdmin
  4. 安装数据库
    以微软MSSQL为例执行解决方案中SQLServer目录物理硬盘中DatabaseScripts目录下Install.sql脚本创建数据库
  5. 初始化数据
    执行对应目录下InitData.sql脚本
  6. 拷贝Longbow.lic文件
    拷贝Scripts目录下Longbow.lic文件到bin目录下
  7. 系统登录用户名与口令
    用户名Admin
    密码123789

解决方案结构

Client

前台页面Demo工程

Bootstrap.Client

前台Web工程

Bootstrap.Client.DataAccess

前台Web工程数据库操作类

MongoDB

MongoDB数据库Collection导入文件

MySQL

MySQL数据库脚本与初始化脚本文件

Postgresql

Postgresql 数据库脚本与初始化脚本文件

Scripts

Longbow.lic 文件运行时需要拷贝到工程bin目录下

SQLite

SQLite 数据库脚本与初始化脚本文件

SQLServer

SQLServer 数据库脚本与初始化脚本文件

Bootstrap.Admin

后台管理系统Web工程

Bootstrap.DataAccess

后台管理系统数据库操作工程

Bootstrap.DataAccess.MongoDB

后台管理系统MongoDB数据库操作工程

UnitTest

后台管理系统单元测试

配置说明

  1. 错误日志配置
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    },
    "LgbFile": {
      "IncludeScopes": true,
      "LogLevel": {
        "Default": "Error"
      },
      "FileName": "Error\\Log.log"
    }

FileName:

配置系统错误日志所在文件夹与文件名以上面代码为例系统错误日志自动记录在应用程序目录下Error目录内文件名为Log{Date}.log
MacOS系统设置为

      "FileName": "Error/Log.log"
  1. 数据库连接配置
  "ConnectionStrings": {
    "ba": "Data Source=.;Initial Catalog=BootstrapAdmin;User ID=sa;Password=sa"
  },
  "MongoDB": "BootstrapAdmin",
  "DB": [
    {
      "Enabled": false
    },
    {
      "Enabled": false,
      "ProviderName": "Sqlite",
      "ConnectionStrings": {
        "ba": "Data Source=BootstrapAdmin.db;"
      }
    },
    {
      "Enabled": false,
      "ProviderName": "MySql",
      "ConnectionStrings": {
        "ba": "Server=localhost;Database=BA;Uid=argozhang;Pwd=argo@163.com;SslMode=none;"
      }
    },
    {
      "Enabled": false,
      "ProviderName": "Npgsql",
      "ConnectionStrings": {
        "ba": "Server=localhost;Database=BootstrapAdmin;User ID=argozhang;Password=argo@163.com;"
      }
    },
    {
      "Enabled": true,
      "Widget": "Bootstrap.DataAccess.MongoDB",
      "ConnectionStrings": {
        "ba": "mongodb://10.211.55.2:27017"
      }
    }
  ]

ConnectionStrings:

默认数据库连接字符串

DB:

数据库配置项
Enabled:    是否生效
ProviderName:    数据库类型未配置默认使用Microsoft SQLServer
Widget:    数据库实体类程序集此程序集负责具体数据库CRUD操作未指定时默认使用Bootstrap.DataAccess程序集
ConnectionStrings:    数据库连接字符串,未配置使用上面的默认数据库连接字符串

以上面代码为例由于前面的配置项中的Enabled均为false最后一个MongoDB配置项为true则系统采用此配置使用MongoDB作为系统数据库根据其配置项内的ConnectionStrings下的数据库连接字符串

MongoDB:

MongoDB DatabaseName

  1. 跨域访问配置
  "AllowOrigins": "http://localhost,http://10.15.63.218"

AllowOrigins

设置第三方网站跨域访问后台管理系统主机头,多个站点使用逗号(,)分割

  1. WebApi JWT Token授权访问配置
  "TokenValidateOption": {
    "Issuer": "BA",
    "Audience": "api",
    "Expires": 5,
    "SecurityKey": "BootstrapAdmin-V1.1"
  }

系统默认提供WebApi JWT Token登录方式Token获取地址为 [Post]/api/Login客户端调用添加Header Bear [Token]即可登录

  1. 单点登录 SSO 配置
  "KeyPath": "..\\keys",
  "ApplicationName": "__bd__",
  "ApplicationDiscriminator": "BootstrapAdmin",
  "DisableAutomaticKeyGeneration": false

KeyPath:   单点登录Key保存路径MacOS设置为

  "KeyPath": "../keys",

ApplicationName:   应用程序名称与第三方系统配置文件内的ApplicationName值保持一致
ApplicationDiscriminator:   应用程序名称与第三方系统配置文件内的ApplicationDiscriminator值保持一致
DisableAutomaticKeyGeneration:   第三方系统配置文件设置为true后台管理系统设置为false这样第三方系统登录自动导航到后台管理系统内实现单点登录入口统一

前台系统配置

  "AuthHost": "http://localhost:50852",

AuthHost:   配置为本系统地址如果发布成应用程序如BA此处配置应配置成包括PathBase的形式http://localhost/BA

  1. 系统日志保存时间间隔配置
  "KeepExceptionsPeriod": 12,
  "KeepLogsPeriod": 12,
  "CookieExpiresDays": 7,

KeepExceptionsPeriod:   系统异常日志数据库保留时间间隔默认为12个月
KeepLogsPeriod:   系统操作日志数据库保留时间间隔默认为7个月
CookieExpiresDays:   保存登录信息时间间隔默认为7天

  1. 系统数据缓存配置
  "LongbowCache": {
    "Enabled": true,
    "CorsItems": [
      {
        "Enabled": true,
        "Key": "ba",
        "Url": "http://localhost/BA/CacheList.axd",
        "Desc": "后台管理数据缓存接口",
        "Self": true
      },
      {
        "Enabled": true,
        "Key": "Pallet",
        "Url": "http://localhost/WebConsole/CacheList.axd",
        "Desc": "托盘组垛系统",
        "Self": false
      }
    ],
    "CacheItems": [
      {
        "Enabled": true,
        "Key": "RoleHelper-RetrieveRolesByUserName",
        "Interval": 600,
        "SlidingExpiration": true,
        "Desc": "指定用户角色数据缓存"
      }
    ]
  }

LongbowCache:

此组件负责系统底层数据缓存
Enabled:   是否启用数据缓存true为启用第一次获取数据时从数据库内获取然后缓存在内存中再指定配置的时间内过期时间单位为秒以上面代码为例缓存项RoleHelper-RetrieveRolesByUserName将会在内存中缓存600秒

CorsItems:

跨域缓存清理配置,由于本项目是后台管理,必定有前台系统页面与之配合(前台页面会调用后台系统的api或者数据),后台配置更改后前台页面需要使用新的数据,如果开启了缓存,必须要及时更新缓存,否则前台系统数据一定是过期的,本配置小节就是负责跨域数据同步的

Enabled:   是否启用跨域缓存清理功能
Key:   配置项键值
Url:   需要缓存清理的站点地址
Desc:   描述信息
Self:   是否为系统本身

本配置非常重要

如果配置未成功可以暂时将根配置的Enabled设置为false暂时关闭使用数据缓存功能

CacheItems:

Key:   缓存项键值
Interval:   缓存时间,单位为秒
SlidingExpiration:   缓存延时设置true时每次访问后指定秒数后过期false时第一次访问进行缓存后指定秒数后过期

常见问题Q&A

  1. 下载源代码后编译不通过报错非常多都是NETCore系统dll缺失或者不兼容等异常信息
    问题原因:   NET Core 框架加载不正确,可使用
dotnet --version

输入结果为下面为正确

2.2.200-preview-009648

命令行查看输出是否为2.2版本,注意后面可能有小版本号如 preview-009648 可以去控制面板程序安装与卸载列表中查看,我给出的示例是我本地环境的真实数据

解决办法:   强制项目使用NETCore 2.2 SDK版本
在项目的根目录打开cmd执行命令即可

dotnet new global.json --sdk-version <SDK版本号>

global.json 文件内容:

{
  "sdk": {
    "version": "2.2.200-preview-009648"
  }
}

项目截图

登录截图

  1. 手机登录

输入图片说明

  1. 电脑登录

输入图片说明

  1. 前台首页

输入图片说明

  1. 后台首页

输入图片说明

参与贡献

  1. Fork 本项目
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request