UserSecrets 不适用于 ModularStartup

UserSecrets not working with ModularStartup

我使用的是 5.7.1,当我使用模块化启动时,UserSecrets 没有添加到 IConfiguration 集合中。

这个有效:

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();

这不是:

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseModularStartup<Startup>()
            .Build();

appSettings.json 被添加到两者中,但秘密仅被添加到标准启动中。

我假设这是因为使用的代理模块化启动 class 是在不同的程序集中定义的,隐式行为是仅尝试在 Startup 程序集中注册机密。

你可以试试registering UserSecrets explicitly:

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((ctx,config) => config.AddUserSecrets<Startup>())
        .UseModularStartup<Startup>()
        .Build();