项目结构
SunuerManage
├─ appsettings.json # 应用程序的配置文件,包含数据库连接字符串、应用程序设置等
├─ bin # 编译生成的二进制文件目录
│ ├─ Debug # 调试版本的编译输出
│ └─ Release # 发布版本的编译输出
├─ Code # 业务逻辑和数据访问层代码
│ ├─ Admin # 管理员相关业务逻辑
│ │ ├─ AdminDal.cs # 管理员数据访问层
│ │ ├─ AdminModel.cs # 管理员数据模型
│ │ ├─ AdminPowerDal.cs # 管理员权限数据访问层
│ │ ├─ AdminPowerModel.cs # 管理员权限数据模型
│ │ ├─ AdminRolesDal.cs # 管理员角色数据访问层
│ │ └─ AdminRolesModel.cs # 管理员角色数据模型
│ ├─ Articles # 文章相关业务逻辑
│ │ ├─ ArticleCategoryDal.cs # 文章分类数据访问层
│ │ ├─ ArticleCategoryModel.cs # 文章分类数据模型
│ │ ├─ ArticlesDal.cs # 文章数据访问层
│ │ └─ ArticlesModel.cs # 文章数据模型
│ └─ ManageSet # 管理设置相关业务逻辑
│ └─ ManageSetModel.cs # 管理设置数据模型
├─ Controllers # 控制器(API),处理HTTP请求
│ ├─ Admin # 管理员相关控制器
│ │ ├─ AdminController.cs # 管理员控制器
│ │ ├─ AdminPowerController.cs # 管理员权限控制器
│ │ └─ AdminRolesController.cs # 管理员角色控制器
│ ├─ Articless # 文章相关控制器
│ │ ├─ ArticleCategoryController.cs # 文章分类控制器
│ │ └─ ArticlesController.cs # 文章控制器
│ ├─ Files # 文件相关控制器
│ │ ├─ CaptchaController.cs # 验证码控制器
│ │ ├─ FilesController.cs # 文件上传控制器
│ │ └─ QRCodeController.cs # 二维码生成控制器
│ └─ ManageSets # 管理设置相关控制器
│ └─ ManageSetController.cs # 管理设置控制器
├─ Data # 数据访问层和数据库上下文
│ ├─ ApplicationDbContext.cs # 数据库上下文,用于与数据库交互
│ └─ SunuerManage.sql # 数据库脚本文件,备份/还原
├─ Pages # Razor页面,用于前端展示
│ ├─ About.cshtml # 关于我们页面
│ ├─ Cases.cshtml # 案例展示页面
│ ├─ Contact.cshtml # 联系我们页面
│ ├─ Error.cshtml # 错误页面
│ ├─ Index.cshtml # 首页
│ ├─ News.cshtml # 新闻页面
│ ├─ newsview.cshtml # 新闻详情页面
│ ├─ Manage # 管理后台页面
│ │ ├─ Admins # 管理员管理页面
│ │ │ ├─ AdminAdd.cshtml # 添加管理员页面
│ │ │ ├─ AdminEdt.cshtml # 编辑管理员页面
│ │ │ ├─ AdminList.cshtml # 管理员列表页面
│ │ │ ├─ AdminPassWord.cshtml # 修改管理员密码页面
│ │ │ ├─ AdminPowerAdd.cshtml # 添加管理员权限页面
│ │ │ ├─ AdminPowerEdt.cshtml # 编辑管理员权限页面
│ │ │ ├─ AdminPowerList.cshtml # 管理员权限列表页面
│ │ │ ├─ AdminRolesAdd.cshtml # 添加管理员角色页面
│ │ │ ├─ AdminRolesEdt.cshtml # 编辑管理员角色页面
│ │ │ ├─ AdminRolesList.cshtml # 管理员角色列表页面
│ │ │ ├─ Adminview.cshtml # 管理员详情页面
│ │ ├─ admin_index.cshtml # 管理后台首页
│ │ ├─ Agreement.cshtml # 用户协议页面
│ │ ├─ Articless # 文章管理页面
│ │ │ ├─ ArticleCategoryAdd.cshtml # 添加文章分类页面
│ │ │ ├─ ArticleCategoryEdt.cshtml # 编辑文章分类页面
│ │ │ ├─ ArticleCategoryList.cshtml # 文章分类列表页面
│ │ │ ├─ ArticlesAdd.cshtml # 添加文章页面
│ │ │ ├─ ArticlesEdt.cshtml # 编辑文章页面
│ │ │ ├─ ArticlesList.cshtml # 文章列表页面
│ │ ├─ consoles # 控制台页面
│ │ │ ├─ console.cshtml # 控制台页面
│ │ ├─ Login.cshtml # 登录页面
│ │ ├─ LoginOut.cshtml # 登出页面
│ │ └─ ManageSets # 管理设置页面
│ │ ├─ ManageSetEdt.cshtml # 编辑管理设置页面
│ ├─ Shared # 共享视图和布局
│ │ ├─ Menu.cshtml # 菜单视图
│ │ ├─ _indexLayout.cshtml # 首页布局
│ │ ├─ _Layout.cshtml # 默认布局
│ │ ├─ _ManageIndexLayout.cshtml # 管理后台布局
│ │ └─ _ValidationScriptsPartial.cshtml # 验证脚本部分视图
│ ├─ _ViewImports.cshtml # 视图导入文件,用于引入命名空间
│ └─ _ViewStart.cshtml # 视图启动文件,用于设置布局
├─ Tools # 工具类
│ ├─ ApiResponse.cs # API响应工具类-统一 API 返回格式
│ ├─ CBC.cs # 加密解密工具类
│ ├─ ConfigurationHelper.cs # 获取appsettings.json中字段值
│ ├─ DataTableToList.cs # 数据表转列表工具类
│ ├─ DBHelper.cs # 数据库帮助类
│ ├─ JsEncryptHelper.cs # JS加密帮助类
│ └─ Tools.cs # 通用工具类
├─ wwwroot # 静态资源文件
│ ├─ css # CSS样式文件
│ ├─ favicon.ico # 网站图标
│ ├─ images # 图片资源
│ ├─ js # JavaScript文件
│ └─ Uploadfile # 上传文件目录
├─ Program.cs # 应用程序入口文件
├─ Properties # 项目属性文件
│ ├─ launchSettings.json # 启动配置文件
│ └─ PublishProfiles # 发布配置文件
│ ├─ FolderProfile.pubxml # 文件夹发布配置文件
│ └─ FolderProfile.pubxml.user # 用户特定的文件夹发布配置文件
├─ Sunuer Manage免责声明(必读).txt # 项目免责声明文件
├─ SunuerManage.csproj # 项目文件,包含项目配置和依赖
├─ SunuerManage.csproj.user # 用户特定的项目配置文件
├─ SunuerManage.sln # 解决方案文件,包含项目结构和配置
配置文件launchSettings.json
{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:32430", //http://localhost:32430,表示应用程序将通过该地址访问。 "sslPort": 0 } }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5021", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" //Development:开发环境。Staging:预发布环境。Production:生产环境。 } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }
配置文件appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=nhdSQLEXPRESS;Database=SunuerManage;User Id=sa;Password=123456;MultipleActiveResultSets=true;TrustServerCertificate=True;Max Pool Size=100;Min Pool Size=5;Pooling=true;"
},
Server=nhd/SQLEXPRESS //指定要连接的数据库服务器及实例名称
Database=SunuerManage //指定要连接的默认数据库名称
User Id=sa; Password=123456 //提供登录 SQL Server 所需要的凭据(账号和密码)
MultipleActiveResultSets=true //允许在同一个数据库连接(同一个会话)上同时进行多个活动的数据读取操作(例如在一个查询读取数据的同时,再执行另一个查询)。场景:在使用 Entity Framework 时,如果在一个连接中需要迭代读取数据并同时执行其他操作,此参数要设置为 true 才能支持。
TrustServerCertificate=True //作用:当使用 TLS/SSL 加密连接 SQL Server 时,是否信任服务器端所提供的证书。含义:如果设置为 True,则在证书未被受信任的证书颁发机构 (CA) 签署或证书存在其他验证问题时,依然强制信任该证书并建立加密连接。安全提示:如果在生产环境中使用自签名证书或未公开可信的证书,这个选项可以让连接继续,但存在一定安全风险。应根据实际需求设置并妥善配置证书。
Max Pool Size=100; Min Pool Size=5; Pooling=true //控制数据库连接池(Connection Pool)的行为。含义:Pooling=true:启用连接池。连接池能在应用程序频繁访问数据库时提升性能,减少反复打开/关闭连接的开销。Max Pool Size=100:连接池中最多保留多少条空闲连接。如果超过这个数,新的连接请求会在可用连接释放前等待或者根据配置抛出异常。Min Pool Size=5:连接池中最少保留多少条空闲连接。应用程序首次连接数据库时,会预热并保留 5 条连接,以便快速响应后续请求。