
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 上的部署流程。这套凭证外置 配置注入的思路同样适用于数据库、消息队列等其他带凭证的服务值得反复研读。【免费下载链接】SamplesSteeltoe samples and reference application collection项目地址: https://gitcode.com/gh_mirrors/samples40/Samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考