
Steeltoe Samples 文件共享實戰Windows SMB 網絡共享與 CredHub 憑證管理完整指南【免費下載鏈接】SamplesSteeltoe samples and reference application collection項目地址: https://gitcode.com/gh_mirrors/samples40/SamplesSteeltoe Samples 是 GitHub 加速計劃 samples40 收錄的 Steeltoe 示例與參考應用集合其中 FileShares 文件共享示例專門演示如何在 ASP.NET Core 應用中安全地管理帶憑證的 Windows SMB 網絡共享連接。無論你是剛接觸 Steeltoe 的新手還是想在 Cloud Foundry 上落地 CredHub 憑證管理的開發者這篇實戰指南都能帶你一步步跑通創建共享 → 上傳文件 → 云上部署的全流程。Steeltoe Samples 文件共享示例能做什么這個文件共享示例FileShares是 Steeltoe Samples 中很有代表性的一員核心能力包括文件上傳通過網頁表單把文件寫入 Windows SMB 網絡共享并自動重命名避免非法字符文件列表與刪除查看共享目錄中的文件并支持安全的刪除操作憑證管理從 Cloud Foundry 的 CredHub 服務綁定中讀取賬號密碼代碼里不硬編碼任何密鑰健康檢查借助 Steeltoe Actuator 的磁盤空間健康檢查實時監控共享目錄的可用空間對應源碼位于FileShares/src/FileSharesWeb/核心邏輯集中在Program.cs、FileShareConfiguration.cs與Controllers/FilesController.cs中。文件共享實戰前的環境準備新手必看開始之前請確認滿足以下條件一臺Windows 機器并安裝 .NET 10 SDK一個已存在的 Windows 文件共享或者本機管理員權限用于創建共享可選部署到云端時需要 Tanzu Platform for Cloud Foundry 及其 Windows 支持如果沒有現成的共享目錄別擔心示例自帶一鍵腳本下面馬上介紹。最快配置方法一鍵創建 Windows SMB 網絡共享 ?示例在FileShares/scripts/目錄下提供了 PowerShell 腳本一條命令即可完成共享創建。以管理員身份打開 PowerShell進入scripts目錄后運行add-user-and-share.ps1它會自動幫你創建本地用戶默認shareWriteUser用于 SMB 讀寫創建共享目錄默認c:\steeltoe_network_share創建 SMB 共享默認名steeltoe_network_shareEveryone 可讀、指定用戶可寫你也可以用參數覆蓋默認值.\add-user-and-share.ps1 -ShareName steeltoe_network_share -SharePath c:\steeltoe_network_share -UserName shareWriteUser -Password thisIs1Pass!?? 該腳本必須在 Windows 管理員權限下運行且運行前請先審閱腳本內容。創建完成后共享地址就是\\計算機名\steeltoe_network_share記下這個 UNC 路徑下一步配置要用。本地運行文件共享示例的詳細步驟第一步配置共享憑證示例通過appsettings.Development.json模擬了 Cloud Foundry 中 CredHub 服務綁定的格式vcap.services本地運行時只需把location、username、password改成你自己的共享信息vcap: { services: { credhub: [{ name: sampleNetworkShare, credentials: { location: \\\\localhost\\steeltoe_network_share, username: shareWriteUser, password: thisIs1Pass! } }] } }第二步啟動應用在src\FileSharesWeb目錄下執行dotnet run --launch-profile https第三步體驗文件共享上傳功能打開https://localhost:7032/files/upload即可一次上傳多個文件到共享目錄訪問https://localhost:7032/files/list可以查看和刪除共享中的文件。上傳邏輯在Controllers/FilesController.cs中文件會以UPLOADED_時間戳_原文件名的格式落盤既避免重名也防止非法字符問題。刪除操作還會校驗路徑必須位于共享根目錄之內防止越權刪除。深入理解應用如何讀取 SMB 網絡共享憑證 整個憑證讀取鏈路非常清晰推薦照著源碼走一遍Program.cs中調用AddCloudFoundryConfiguration()把 Cloud Foundry 服務綁定注入配置系統FileShareConfiguration.cs從配置里查找名為sampleNetworkShare的credhub服務實例取出location、username、password構建NetworkCredentialFileShareHostedService.cs啟動時用WindowsNetworkFileShare建立連接并執行一次寫入再刪除的探測確保路徑和憑證有效如果憑證或權限不對應用啟動時會直接拋出異常——這種失敗即快速暴露的設計能讓問題在第一時間被發現非常實用。CredHub 憑證管理的云上實踐在 Cloud Foundry 部署文件共享 ??本地跑通后云上部署的核心思路是把 SMB 憑證交給 CredHub 管理應用從服務綁定中讀取。一鍵創建 CredHub 服務實例FileShares/scripts/cf-create-service.ps1腳本封裝了創建命令傳入共享地址、用戶名和密碼即可.\cf-create-service.ps1 -NetworkAddress \\localhost\steeltoe_network_share -UserName shareWriteUser -Password thisIs1Pass!腳本會把這些參數打包成 JSON調用cf create-service credhub default sampleNetworkShare -c ...存入 CredHub并在日志中把密碼打碼為REDACTED避免敏感信息泄露。推送應用到 Cloud Foundry該示例僅支持 Windows 運行因此需要先發布再推送dotnet publish -r win-x64 --self-contained cf push -f manifest-windows.yml -p bin/Release/net10.0/win-x64/publishmanifest-windows.yml中通過services: sampleNetworkShare把應用與 CredHub 服務實例綁定這樣應用在云端運行時就會自動獲得憑證綁定本地和云端使用同一套代碼。 獲取示例代碼git clone https://gitcode.com/gh_mirrors/samples40/Samples然后進入FileShares目錄即可開始。清理與常見問題排查 實驗結束后可用remove-user-and-share.ps1一鍵刪除共享、本地用戶和目錄同樣需要管理員權限。常見坑位提醒憑證沖突如果之前用 Windows 資源管理器打開過共享再運行示例會因同一用戶不能以多套憑證訪問同一共享而失敗。執行klist purge讓 Windows 忘記舊連接即可恢復權限不足應用啟動時報寫入異常多半是shareWriteUser對共享目錄沒有寫權限檢查New-SmbShare的-FullAccess參數總結通過 Steeltoe Samples 的 FileShares 示例你可以完整掌握Windows SMB 網絡共享的連接管理、CredHub 憑證管理的服務綁定模式以及 ASP.NET Core 應用在 Cloud Foundry 上的部署流程。這套憑證外置 配置注入的思路同樣適用于數據庫、消息隊列等其他帶憑證的服務值得反復研讀?!久赓M下載鏈接】SamplesSteeltoe samples and reference application collection項目地址: https://gitcode.com/gh_mirrors/samples40/Samples創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考