ASP.NET:保护 Github 中的配置文件

ASP.NET: Securing Config Files in Github

在 asp.net 中,我们可以在可以包含秘密值的应用程序设置中包含文件属性:

Web.config

  <appSettings file="HiddenSettings.config">
  </appSettings>

HiddenSettings.config

<?xml version="1.0"?>
<appSettings>
  <add key="DbConnectionString" value="VALUE_IN_TEMPLATE_FILE" />
</appSettings>

中的git,我们可以简单的保留git中的HiddenSettings.config-ignore,这样敏感信息就不会被签入了。

这种方法的问题是每次开发人员获取代码的第一个副本时,he/she 都需要手动填充秘密数据。

自动执行此操作的最佳做​​法是什么(即在 local/target 部署环境中无需手动操作来填写机密信息)?

最近我自己也在思考这个问题。到目前为止,我能想到的最好方法是 link 到一个单独的配置文件,然后将该文件放到一个单独的私有存储库中。然后将该存储库作为子模块添加到实际项目中。例如:

git submodule add git@github.com:someUser/private-config.git

配置指向子模块的相对路径,类似:

<appSettings file="../../../../private-config/The.Real.Deal.config">
    <add key="someKey" value="SAMPLE VALUE" />
</appSettings>

因此,当用户检出项目(初始化子模块)时,private-repo 中的配置将可用。否则,他们可以下载没有实际值的项目,并且只能访问示例值。

与其他方法相比,这对我来说看起来不错,但我也总是乐于接受建议。