在带有 .Net Framework 4.X 的 ASP.Net MVC 中,如何在部署管道期间向 web.config 添加密钥?
In ASP.Net MVC with .Net Framework 4.X, how do you add keys to web.config during the deployment pipeline?
使用 .NET 6 或 .NET Core,我可以轻松地将设置、连接字符串等插入环境变量、AWS Key Vault 等。
我如何在 .Net Framework 中做到这一点 4.X?我想在我的 web.config
文件中添加无法转到源代码存储库的设置。转换有点不起作用,因为 web.Release.config
也会进入存储库。
我发现的一些想法:
我可以在机器级别配置级别添加配置。特别是对于我的情况,这不容易完成。这就是为什么我正在寻找其他方法。
我可以创建一个工具来接收键和值,然后在部署期间操纵 web.config
。必须创建某种工具似乎不像是“官方的做法”。
我可以加密配置文件,但我仍会将其保存在我的存储库中。即使它是加密的,它似乎也不正确。此外,在某些情况下,我需要在应用程序级别指定 machinekey
。我假设所有这些设置实际上都是用这个密钥加密的,对吧?那么打开这个密钥是不安全的。
我避免不惜一切代价更改机器级别的配置文件,因为这对我来说并不容易。但也许这就是完成这项工作的预期方式?
你们如何在部署期间在 web.config
文件中实现生产配置?
Ps.: 我知道我可以使用变量设置我的代码,AWS Key Vault 就像在 .NET Core 中一样。然而,在这种情况下,它是一个巨大的代码库,已经通过应用程序设置、连接字符串等进行了完全配置。
<appSettings>
元素可以指定指向外部文件 (see the second example here) 的文件参数。该文件本身可以添加到 .gitignore,因此您最终得到的设置从未提交给您的存储库。缺点是您必须与任何新开发人员共享该秘密文件的内容。
你的P.S。听起来好像您已经知道 Key Vault 配置,但以防万一,另一种选择是直接 link 到 web.config (link) 中的 Azure Key Vault .这避免了文件共享要求,因为所有机密都在 Azure 中。不过,它特定于 Azure,并且由于您提到了 Amazon Web Services (AWS),可能无法完全解决您的问题。
使用 .NET 6 或 .NET Core,我可以轻松地将设置、连接字符串等插入环境变量、AWS Key Vault 等。
我如何在 .Net Framework 中做到这一点 4.X?我想在我的 web.config
文件中添加无法转到源代码存储库的设置。转换有点不起作用,因为 web.Release.config
也会进入存储库。
我发现的一些想法:
我可以在机器级别配置级别添加配置。特别是对于我的情况,这不容易完成。这就是为什么我正在寻找其他方法。
我可以创建一个工具来接收键和值,然后在部署期间操纵
web.config
。必须创建某种工具似乎不像是“官方的做法”。我可以加密配置文件,但我仍会将其保存在我的存储库中。即使它是加密的,它似乎也不正确。此外,在某些情况下,我需要在应用程序级别指定
machinekey
。我假设所有这些设置实际上都是用这个密钥加密的,对吧?那么打开这个密钥是不安全的。
我避免不惜一切代价更改机器级别的配置文件,因为这对我来说并不容易。但也许这就是完成这项工作的预期方式?
你们如何在部署期间在 web.config
文件中实现生产配置?
Ps.: 我知道我可以使用变量设置我的代码,AWS Key Vault 就像在 .NET Core 中一样。然而,在这种情况下,它是一个巨大的代码库,已经通过应用程序设置、连接字符串等进行了完全配置。
<appSettings>
元素可以指定指向外部文件 (see the second example here) 的文件参数。该文件本身可以添加到 .gitignore,因此您最终得到的设置从未提交给您的存储库。缺点是您必须与任何新开发人员共享该秘密文件的内容。
你的P.S。听起来好像您已经知道 Key Vault 配置,但以防万一,另一种选择是直接 link 到 web.config (link) 中的 Azure Key Vault .这避免了文件共享要求,因为所有机密都在 Azure 中。不过,它特定于 Azure,并且由于您提到了 Amazon Web Services (AWS),可能无法完全解决您的问题。