Sunuer

Sunuer Manage Sunuer Easy 周邊
專案介紹

專案結構


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 條連線,以便後續連線請求能更快速地響應。