# ipc_framework **Repository Path**: ipc_demo/ipc_framework ## Basic Information - **Project Name**: ipc_framework - **Description**: 一个专注于IPC技术的开源框架,提供高效、可靠的进程间通信解决方案,适用于多种操作系统和开发场景。 基于.net9 Furion后台框架和Bootstrap Blazor前端框架的基础平台功能,同时支持页面和WebAPI接口 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-07 - **Last Updated**: 2025-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IPC_Bootstrap_Blazor_WebApi ## 项目概述 基于 Blazor Server 构建的企业级 Web 应用框架,集成 BootstrapBlazor UI、SqlSugar ORM 和 Furion 框架,提供完整的用户认证、权限管理和数据访问功能。 ## 技术架构 ### 核心框架 - **.NET 9.0** - 主要开发平台 - **Blazor Server** - 交互式 Web UI 框架 - **Furion** - 全栈应用框架(依赖注入、AOP、统一结果处理) - **BootstrapBlazor** - UI 组件库 ### 数据访问 - **SqlSugarCore** - 轻量级 ORM 框架,支持多种数据库 - **SQLite** - 嵌入式数据库 ### 安全认证 - **Microsoft.AspNetCore.Components.Authorization** - 认证授权 - **MD5 加密** - 密码安全存储 ### 扩展组件 - **BootstrapBlazor.TableExport** - 表格导出 - **Furion.Extras.Authorization.JwtBearer** - JWT 认证 - **Furion.Extras.DatabaseAccessor.SqlSugar** - 数据库访问 --- ## 项目结构树形描述 项目采用分层架构设计,包含 4 个子项目,遵循关注点分离原则,便于维护和扩展。 ### 解决方案根目录 ``` IPC.sln # 解决方案管理 LICENSE.txt # 许可证 README.md # 项目文档 .gitattributes # Git 配置 .gitignore # Git 忽略规则 ``` ### Application.Core (核心领域层) **核心领域层**,包含实体模型、枚举、工具类等基础组件。 - **实体模型**:定义系统中所有业务实体,如 User、Permission 等 - **工具类**:提供 MD5 加密等通用功能 - **共享常量**:定义系统级常量和配置 ``` Application.Core/ ├── Application.Core.csproj # 项目配置,定义依赖和构建选项 ├── Application.Core.xml # XML 文档 ├── DbContext.cs # 数据库上下文,提供数据库连接 ├── Dto/ # 数据传输对象 │ ├── LogQueryDto.cs # 日志查询DTO │ └── UserDto.cs # 用户DTO └── Entity/ # 实体模型 ├── Permission.cs # 权限实体,定义权限信息 ├── SystemLog.cs # 系统日志实体,记录系统操作日志 ├── User.cs # 用户实体,定义用户信息 └── UserPermission.cs # 用户权限关联实体 ``` ### Application.Service (业务服务层) **业务服务层**,实现业务逻辑和数据处理。 - **认证服务 (AuthService)**:处理用户登录、注销和认证状态管理 - **用户服务 (IUserService)**:提供用户数据的 CRUD 操作 - **权限服务**:管理用户权限和角色 ``` Application.Service/ ├── Application.Service.csproj # 项目配置 ├── Application.Service.xml # XML 文档 ├── GlobalUsings.cs # 全局 using 指令文件 ├── applicationsettings.json # 应用服务配置 ├── Auth/ # 认证服务 │ └── AuthService.cs # 用户认证,处理用户登录认证 ├── LogCache/ # 日志缓存 │ ├── ISystemLogService.cs # 日志服务接口 │ ├── LogCacheProvider.cs # 缓存提供者 │ ├── LogCacheService.cs # 缓存服务 │ ├── LogWrapper.cs # 日志包装器 │ └── SystemLogService.cs # 系统日志服务 ├── Permissions/ # 权限管理 │ ├── IPermissionService.cs # 权限接口 │ └── PermissionService.cs # 权限服务 ├── System/ # 系统服务 │ ├── ISystemService.cs # 系统接口 │ └── SystemService.cs # 系统服务 └── Users/ # 用户服务 ├── IUserService.cs # 用户接口 └── UserService.cs # 用户服务 ``` ### Application.Web.Core (Web 核心层) **Web 核心层**,包含控制器、中间件和服务配置。 - **Startup.cs**:配置应用程序服务和中间件管道 - **控制器**:处理 HTTP 请求 - **服务注册**:注册业务服务、数据库连接等 - **数据库初始化**:创建表结构和种子数据 ``` Application.Web.Core/ ├── Application.Web.Core.csproj # 项目配置 ├── Application.Web.Core.xml # XML 文档 ├── Startup.cs # 应用启动配置 └── Services/ # 服务文件夹 ├── DbService.cs # 数据库服务,处理数据库初始化和种子数据 └── LockScreenService.cs # 锁屏服务 ``` ### Application.Web.Entry (Web 入口层) **Web 入口层**,包含 Blazor 页面、组件和静态资源。 - **页面组件**:如 Login.razor、Home.razor 等 - **布局组件**:定义应用程序的整体布局 - **静态资源**:CSS、JavaScript 等 - **配置文件**:appsettings.json 等 ``` Application.Web.Entry/ ├── Application.Web.Entry.csproj # 项目配置 ├── Program.cs # 程序入口 ├── SingleFilePublish.cs # 单文件发布配置 ├── _Imports.razor # 全局 Razor 组件导入 ├── APP_DB/ # 数据库文件夹 │ └── database.db # SQLite 数据库文件 ├── Pages/ # Razor 页面文件夹 │ ├── Error.cshtml # 错误页面视图 │ ├── Error.cshtml.cs # 错误页面控制器 │ ├── FetchData.razor # 数据获取页面 │ ├── Index.razor # 首页 │ ├── LogTest.razor # 日志测试页面 │ ├── Login.razor # 登录页面 │ ├── Login.razor.cs # 登录页面代码文件 │ ├── Login.razor.css # 登录页面样式 │ ├── SwaggerApi.razor # Swagger API 页面 │ ├── SystemLogs.razor # 系统日志页面 │ ├── SystemLogs.razor.cs # 系统日志页面代码文件 │ ├── SystemLogs.razor.css # 系统日志页面样式 │ ├── Users.razor # 用户管理页面 │ ├── Users.razor.cs # 用户管理页面代码文件 │ └── _Host.cshtml # Blazor 主页面 ├── Properties/ # 项目属性文件夹 │ └── launchSettings.json # 启动配置文件 ├── Shared/ # 共享组件文件夹 │ ├── CustomLockScreen.razor # 锁屏组件 │ ├── LayoutPreview.razor # 布局预览组件 │ ├── LayoutPreview.razor.css # 布局预览样式 │ ├── LayoutThumbnail.razor # 布局缩略图组件 │ ├── LogDrawer.razor # 日志抽屉组件 │ ├── LogDrawer.razor.cs # 日志抽屉组件代码文件 │ ├── LogDrawer.razor.css # 日志抽屉组件样式 │ ├── LogViewer.razor # 日志查看器组件 │ ├── LogoutLink.razor # 用户登出组件 │ ├── MainLayout.razor # 主布局组件 │ ├── MainLayout.razor.cs # 主布局代码文件 │ ├── MainLayout.razor.css # 主布局样式 │ ├── NavMenu.razor # 导航菜单组件 │ ├── NavMenu.razor.css # 导航菜单样式 │ ├── PasswordChangeModal.razor # 个人中心(密码修改)组件 │ ├── PasswordChangeModal.razor.cs # 个人中心(密码修改)组件代码 │ └── PasswordChangeModal.razor.css # 个人中心(密码修改)组件样式 ├── App.razor # 应用程序根组件 ├── appsettings.json # 应用配置文件 ├── appsettings.Development.json # 开发环境配置文件 └── wwwroot/ # 静态资源文件夹 ├── css/ # CSS 样式文件夹 ├── favicon.ico # 网站图标 ├── favicon.png # PNG 格式网站图标 ├── images/ # 图片资源文件夹 └── js/ # JavaScript 脚本文件夹 ``` --- ## 核心功能 ### 用户认证 - 登录/注销管理 - MD5 密码加密 - 记住密码功能 - 实时用户验证 ### 权限控制 - 基于角色的访问 - 用户权限关联 - 多对多权限映射 ### 数据管理 - ORM 数据库操作 - 自动表结构生成 - 种子数据初始化 ### 界面组件 - Bootstrap 响应式设计 - 表单验证提示 - 加载状态反馈 --- ## 数据库设计 系统采用 SQLite 数据库,主要包含以下表: ### Users 表 存储用户基本信息 - **Id** (主键):用户唯一标识 - **UserName**:登录名称 - **DisplayName**:显示名称 - **PasswordHash**:密码哈希值 - **IsDisabled**:是否禁用 - **CreatedAt**:创建时间 ### Permissions 表 存储系统权限信息 - 通过导航属性与 Users 表建立多对多关系 ### UserPermission 表 用户和权限的关联表 - **UserId**:用户外键 - **PermissionId**:权限外键 --- ## 应用程序启动流程 1. **配置服务**:在 Startup.cs 中注册各种服务 2. **数据库初始化**:创建 SQLite 数据库和表结构,插入种子数据 3. **中间件配置**:设置 HTTPS 重定向、静态文件、路由等中间件 4. **路由配置**:映射控制器路由、Blazor Hub 和回退页面 5. **用户访问**:通过浏览器访问应用程序,经过认证后使用各项功能 --- ## 快速开始 1. 确保安装了 .NET 9.0 SDK 2. 在解决方案目录下执行 `dotnet run --project Application.Web.Entry` 命令 3. 打开浏览器,访问 `https://localhost:5001` 或 `http://localhost:5000` 4. 使用默认用户名和密码登录系统