代码之家  ›  专栏  ›  技术社区  ›  Ashraf Alam

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

  •  4
  • Ashraf Alam  · 技术社区  · 10 年前

    在asp。net我们可以在appsettings中包含file属性,该属性可以包含秘密值:

    Web.config文件

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

    HiddenSettings.config(隐藏设置配置)

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

    在git中,我们可以简单地保留HiddenSettings。git中的config忽略,这样敏感信息就不会被检入。

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

    自动执行此操作的最佳做法是什么(即在本地/目标部署环境中不需要手动操作来填充机密信息)?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Volkan Paksoy    10 年前

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

    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>
    

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

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