c# - wwwroot 中的 vNext/.NET5 config.json

标签 c# asp.net .net asp.net-core

据我所知,现在首选使用 config.json 文件来存储应用程序的配置设置,这很棒。喜欢 json 格式并发现它更易于阅读。

虽然在发布我的第一个 vNext 应用程序时,我注意到 config.json 文件似乎发布到

approot/src/my_project/config.json

我的网站位于名为 wwwroot 的文件夹中

我的 web 服务器有多个网站设置,每个网站都有自己的“app.config”文件,我可以将其放入网站目录中,其中包含特定于正在运行的网站的设置。但是现在我有两个问题,

  1. config.json 填充到错误目录

  2. 如果我将 config.json 文件放入 wwwroot 文件夹,则客户端可以通过浏览器访问它。这是非常危险的。

如果 config.json 在 wwwroot 中,我是否必须设置我的网络服务器以忽略对 config.json 的请求,还是我完全遗漏了什么?

最佳答案

每个项目都应该有一个单独的文件夹。永远不要在 wwwroot 中放置一个您不想提供的文件夹。它最终可能看起来像这样:

/root
/root/Project1
/root/Project1/config.json
/root/Project1/wwwroot
/root/Project2
/root/Project2/config.json
/root/Project2/wwwwroot

显然,您的结构不必完全匹配。一般来说,如果您使用单独的目录来分隔您的项目,并且不将您的配置放在您的 wwwroot 中,您会没事的。

顺便说一下,您可能希望首先避免在 config.json 文件中包含任何 secret 。您应该使用源代码控制软件,并且您应该避免 checkin secret 内容的情况。可能是环境变量或 secrets API .

关于c# - wwwroot 中的 vNext/.NET5 config.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151690/

相关文章:

c# - 使用 MVVM 模式访问模型的最佳实践是什么

javascript - 单击时将 CSS 应用于 GridView

c# - 组合/聚合许多底层服务响应的 WCF 路由器

c# - 我可以在没有窗口的情况下发送/接收窗口消息吗?

c# - Azure 云服务角色实例 - 自动缩放 - 更改事件未触发

c# - 具有命名空间限制的通用类型

c# - 使用带有 AJAX 表单的后退按钮?

c# - ASP 下拉列表 selectedvalue 在按下按钮时为空白

c# - 在网格中交互控件

c# - 使用原始类型成员的最佳实践