从零到生产:YiShaAdmin 权限管理系统 5 步跑通指南
【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin
YiShaAdmin 是一个基于 .NET Core MVC 的权限管理系统,内置员工、部门、角色、菜单、按钮级权限、定时任务和代码生成器,适合你要快速搭网站后台、CMS、CRM 或 OA 这类管理端项目的场景。下面按实际部署路线走一遍,一次会话就能登录进你自己配好的权限管理系统。
整个流程分五个阶段,动手前先有全局概念:
| 阶段 | 目标 | 做什么 |
|---|---|---|
| 1 装环境 | SDK 与代码就位 | 确认 .NET Core SDK 版本,克隆仓库 |
| 2 配数据库 | 建库 + 灌种子数据 | 执行 Document/DatabaseScript 下的 SQL 脚本 |
| 3 跑服务 | Web 与 WebApi 启动 | 改 appsettings.json,dotnet run |
| 4 验功能 | 登录验证权限 | admin 登录,查菜单、按钮权限、定时任务 |
| 5 加固上线 | 生产可用 | 改密码、HTTPS、Redis、备份 |
把 SDK 版本和仓库对齐
仓库默认分支(master)编译目标是netcoreapp3.1,如果你的机器装的是新版 SDK,先切到对应版本分支再跑(README 中列了 YiShaAdmin-Net6、YiShaAdmin-Net7 分支)。先确认本机装了哪个 SDK:
dotnet --list-sdks预期输出里包含 3.1.4xx 或与你所选分支匹配的版本;这步卡住的话大概率是 SDK 没装对,去微软官网装对应版本即可。
然后克隆代码并进入目录:
git clone https://gitcode.com/GitHub_Trending/yi/YiShaAdmin cd YiShaAdmin解决方案里有两个 Web 工程:YiSha.Admin.Web(MVC 前端,端口 5000)和 YiSha.Admin.WebApi(REST API,端口 5001),两者共用一套数据库配置。
✅ 本阶段完成标志:dotnet --list-sdks能看到目标 SDK 版本,仓库已在本地就位。
让数据库先跑起来
YiShaAdmin 同时支持 MySQL 和 SQL Server,Document/DatabaseScript/ 下脚本分两组:建表结构(mysql.sql / sqlserver.sql)和种子数据(mysql_data.sql / sqlserver_data.sql)。种子数据里带默认管理员、菜单、角色、字典——跳过它你连不进去。
以 MySQL 为例,下面三条命令依次是建库、导结构、导数据:
mysql -u root -p -e "CREATE DATABASE YiShaAdmin DEFAULT CHARSET utf8mb4;" mysql -u root -p YiShaAdmin < Document/DatabaseScript/mysql.sql mysql -u root -p YiShaAdmin < Document/DatabaseScript/mysql_data.sql⚠️ 脚本会先删表再重建,千万别对着有真实数据的库执行。三条命令无报错输出即成功,再用mysql -u root -p -e "USE YiShaAdmin; SHOW TABLES;"确认能看到 SysUser、SysMenu、SysRole 等二十多张表。
✅ 本阶段完成标志:数据库中表结构齐全,SysUser 表里有 admin 这条记录。
改两处配置,dotnet run 启动
上一步没问题,现在处理最容易被忽略的一个点:连接字符串。打开YiSha.Web/YiSha.Admin.Web/appsettings.json,只改 SystemConfig 里这两行:
"DBProvider": "MySql", "DBConnectionString": "server=localhost;database=YiShaAdmin;user=root;password=你的密码;port=3306;charset=utf8mb4;"仓库默认是 SqlServer +Database=YsData,用 SQL Server 就保留 DBProvider 不动,只把连接串换成你自己的账号库名;JSON 别留尾逗号,否则启动直接报错。如果还要跑 WebApi,YiSha.Web/YiSha.Admin.WebApi/appsettings.json同样改一遍——两个工程端口 5000 / 5001 是各自 Program.cs 里写死的,不用配。
✅ 本阶段完成标志:两个 appsettings.json 保存无误,JSON 可被正常解析。
然后进 YiSha.Admin.Web 目录启动:
dotnet run预期终端打印Now listening on: http://*:5000,出现这行说明服务起来了。
✅ 本阶段完成标志:5000 端口监听正常,浏览器能打开登录页。
登录并验证权限管理功能:菜单、按钮、定时任务
浏览器打开http://localhost:5000/admin/——注意带/admin虚拟目录,这来自配置里的 VirtualDirectory。用种子数据里的账号 admin / 123456 加图片验证码登录。
登录后左侧应出现完整的模块菜单:单位组织、系统管理、系统工具。菜单为空基本就是数据没导全,直接看下面的踩坑速查。
接下来验权限。进"单位组织 → 员工管理",列表支持按组织树筛选和多条件搜索;点开任一员工的编辑,能看到角色分配入口。而角色到底有哪些菜单和按钮权限,要到"系统管理 → 角色管理"点"权限"勾选——YiShaAdmin 的权限控制细到按钮级,某个按钮不可用基本都是权限标识没勾给当前角色。
最后验证定时任务。"系统管理 → 定时任务"里种子数据已预置任务,确认状态为启用、"下次执行时间"按 Cron 推进,点"日志"能看到执行记录。任务调度 JobCenter 是随进程启动初始化的,改完任务记得重启应用才生效。
✅ 本阶段完成标志:admin 登录成功、菜单完整、员工编辑保存成功、任务日志有新记录。
踩坑速查
- 根路径访问 404→ 站点挂在 /admin 虚拟目录下 → 直接访问
http://localhost:5000/admin/。 - 登录提示密码错误→ 只导了建表脚本、漏了 mysql_data.sql,SysUser 是空的 →
mysql -u root -p YiShaAdmin < Document/DatabaseScript/mysql_data.sql后重试。 - 定时任务一直不执行→ 任务状态是禁用,或改完没重启、调度器没重建 → 把 JobStatus 置为启用,重启 dotnet run。
上线前清单
- 改掉 admin / 123456 默认密码,种子数据必须换
- CacheProvider 切到 Redis 并设置密码;单机小流量可以保留 Memory
- 套反向代理加 HTTPS,仓库里的 Document/nginx.conf 是现成范例
- 设
ASPNETCORE_ENVIRONMENT=Production,开发异常页在正式环境会泄露堆栈 - 定期备份数据库,内置的 DatabasesBackupJob 定时任务可以直接派上用场
从克隆仓库到验证完权限,整条路线其实就五步,大部分时间花在数据库和连接串上。想继续深入,按这三处看:
- 功能清单与版本分支说明:README.md
- 建表与种子数据脚本:Document/DatabaseScript/
- 权限核心逻辑(菜单、角色、授权分配):YiSha.Business/YiSha.Business/SystemManage/
【免费下载链接】YiShaAdmin基于 .NET Core MVC 的权限管理系统,代码易读易懂、界面简洁美观项目地址: https://gitcode.com/GitHub_Trending/yi/YiShaAdmin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考