无法访问ASP.net Core 3.0中的用户密钥

时间:2019-11-15 10:18:07

标签: c# asp.net-core .net-core asp.net-core-mvc asp.net-core-3.0

我的问题很简单。 我有一个ASP.net core 3.0应用程序,我使用visualstudio添加了机密,然后将我的机密通常粘贴到机密文件中。 然后在Program.cs中,我添加了对addusersecrets的调用,如下所示:

...
...
.AddUserSecrets<Startup>()

但是,当我像在appsettings.json中那样调用Configuration["Authentication:Secret"]之类的秘密时,却得到了一个空值。

我经历了stackoverflow,并尝试了如下更改addsecrets之类的解决方案:

.AddUserSecrets("fds...-...-...askd")

//OR

.AddUserSecrets(typeof(Startup).Assembly, true, reloadOnChange: true)

但没有一个能起作用。

我想知道这个秘密的东西是否甚至可以在asp.net内核上运行,因为我看不到我的代码不起作用的任何原因。如果有人得到,请告诉我一个解决方案吗? 谢谢。

3 个答案:

答案 0 :(得分:1)

您的代码看起来像这样吗?

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", 
                     optional: false, 
                     reloadOnChange: true)
        .AddEnvironmentVariables();

    if (env.IsDevelopment())
    {
        builder.AddUserSecrets<Startup>();
    }

    Configuration = builder.Build();
}

答案 1 :(得分:0)

请确保检查您是否将"ASPNETCORE_ENVIRONMENT"变量设置为"Development",否则您的应用不会添加用户机密。

  • 在Powershell中:

    $ Env:ASPNETCORE_ENVIRONMENT =“发展”

  • cmd:

    setx ASPNETCORE_ENVIRONMENT“开发”

答案 2 :(得分:0)

用户机密现在存储在csproj项目文件中。这就是您阅读它的方式(参见图片)。我正在使用asp.net core 5 instructions