如何基于F#通过IConfigurationRoot极简实现用户密钥获取?
极简F# CLI项目实现用户密钥读取(仅依赖Microsoft.Extensions.Configuration.UserSecrets)
步骤1:安装必要的NuGet包
在项目目录下执行:
dotnet add package Microsoft.Extensions.Configuration.UserSecrets
步骤2:初始化用户密钥标识
用户密钥需要关联唯一ID,两种方式可选:
- 自动初始化:在项目目录执行
这会自动在你的F#项目文件(*.fsproj)中添加dotnet user-secrets init<UserSecretsId>节点,示例:<PropertyGroup> <UserSecretsId>your-unique-guid-here</UserSecretsId> </PropertyGroup> - 手动添加:直接编辑fsproj文件,添加上述
<UserSecretsId>节点(推荐自动方式避免GUID输入错误)
步骤3:编写F#核心代码(无依赖注入/ApplicationBuilder)
直接构建IConfigurationRoot,仅加载用户密钥配置源,示例代码:
open Microsoft.Extensions.Configuration // 构建配置根,仅加载用户密钥 let config = ConfigurationBuilder() .AddUserSecrets(System.Reflection.Assembly.GetExecutingAssembly()) .Build() :> IConfigurationRoot // 读取密钥示例 let apiKey = config.["ApiKey"] printfn $"读取到的API密钥:{apiKey}"
步骤4:设置和验证用户密钥
- 设置密钥:在项目目录执行
dotnet user-secrets set "ApiKey" "your-actual-secret-key-here" - 运行CLI项目,即可看到读取到的密钥内容
注意事项
<UserSecretsId>不要提交到版本控制(默认会被.gitignore排除,若未排除需手动添加)- 用户密钥存储在本地系统安全位置(Windows:
%APPDATA%\Microsoft\UserSecrets\<SecretsId>\secrets.json;macOS/Linux:~/.microsoft/usersecrets/<SecretsId>/secrets.json) - 该实现完全不依赖
ApplicationBuilder或ServiceCollection,符合极简CLI需求
内容的提问来源于stack exchange,提问作者LaurentBaj
相关产品推荐
相关产品推荐

