选项模式和用户机密(Asp 核心 2.2。)

Options Pattern and User Secrets (Asp Core 2.2.)

我想使用选项模式访问我项目的用户机密。但是当我使用选项模式时,秘密值是空的;但我的其他配置选项效果很好。

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<AppSettingsData>(Configuration);        
    services.Configure<MyUserSecrets>(Configuration);
}

MyController.cs

MyController(    
    IOptionsMonitor<MyUserSecrets> myUserSecrets
){
    _mySecrets = myUserSecrest.CurrentValue;
}

根据我应该将 AddUserSecrets 添加到构建器的文档,我的构建器看起来与示例代码不同。这是我的建造者:

Program.cs

var builder = CreateWebHostBuilder(args);
builder.add // No AddUserSecrest available...
builder.Build().Run(); 

为了从 appsettings 中获取子部分,该选项需要询问配置以获取部分。

services.Configure<AppSettingsData>(Configuration); 
services.Configure<MyUserSecrets>(Configuration.GetSection("MyUserSecrets"));