当前位置: 首页 > 知识库问答 >
问题:

从Asp获取值。Net核心应用程序设置

燕昊东
2023-03-14

在Asp。Net Core 3.1应用程序我有以下关于应用程序设置的部分:

  "Logins": [
    {
      "Name": "Facebook",
      "Id": "fb_id",
      "Secret": "fb_secret"
    },
    {
      "Name": "Google",
      "Id": "go_id",
      "Secret": "go_secret"
    }
  ]

我试图获取一些值,比如Facebook的Id,所以我尝试:

Configuration.GetValue<String>("Logins:Facebook:Id")

但这行不通。。。我怎样才能得到这些值?

共有1个答案

傅嘉悦
2023-03-14

所有ASP. NET Core配置都会转换为键值对。在您的示例中,您最终得到的键值对如下所示:

  • 登录:0:Name=Facebook
  • 登录:0:Id=fb\u Id
  • 登录:0:Secret=fb\u Secret
  • 登录:1:Name=Google
  • 登录:1:Id=go\u Id
  • 登录:1:Secret=go_Secret

如图所示,没有名为Logins:Facebook:Id的键,这是因为JSON结构使用数组。如果要按名称将提供者作为目标,请更新JSON以使用以下结构:

"Logins": {
  "Facebook": {
    "Id": "fb_id",
    "Secret": "fb_secret"
  },
  "Google": {
    "Id": "go_id",
    "Secret": "go_secret"
  }
}

这将创建您期望的键值对,例如:

  • 登录:Facebook:Id=fb_id
  • 登录:Facebook:秘密=fb_secret

此外,由于这些值已经是字符串,如果愿意,您可以使用以下内容来读取值:

Configuration["Logins:Facebook:Id"]
 类似资料:
  • 我刚起步 (更新:解决方案是将UseRouting移动到/api/error路由下) 但是当时,永远不会调用错误控制器方法。

  • 我正在创建一个控制台应用程序使用。NET Core 3.1和我想有一个app设置json加载所有的环境,路径,变量,...在执行开始,然后从其他库类获取值。我创建了一个设置类,其中的数据包含在应用设置json中。这是我已经在教程中找到的,但我无法获得任何价值。 因为我不知道如何初始化所有东西,所以我不能做一个正确的主。。。我错过了什么?我想我一直在为这么简单的事情兜圈子。提前谢谢!注意:我需要从另

  • 我试着把这个项目作为一个正常的参考。但是在重新构建解决方案之后,控制台应用程序仍然没有将.NET核心库作为参考。

  • 我的问题和这个差不多。 ASP。Net Core与EF Core和CosmosDB-身份问题 提供的答案不起作用。这会产生其他问题。当我从升级我的应用程序时,这些错误开始出现。NET Core 3.1 to。净5。降级应用程序使所有错误都消失了。显然,这个问题与efcore 5中引入的对cosmos的乐观并发支持有关。 https://docs.microsoft.com/en-us/ef/cor

  • 我的webapp是用。NET核心并部署在Azure中。我已启用Azure应用程序服务身份验证,并将其配置为使用Azure Active Directory。当我访问webapp时,我确实会被重定向到正确的登录页面。登录后,我可以浏览到endpoint。对我进行身份验证,并查看是否存在针对我的用户的声明。我还可以验证下面的请求标头是否存在值: X-MS-TOKEN-AAD-ID-TOKEN X-MS

  • ASP.NETCore支持一个新的配置系统,如下所示:https://docs.asp.net/en/latest/fundamentals/configuration.html 也支持这种模式吗?NET核心控制台应用程序? 如果不是,什么是替代以前的和模型?