c# - 在持续部署中管理密码

标签 c# asp.net-mvc continuous-integration teamcity

我们正在使用 TeamCity 部署持续集成环境。当我们完成 CI 流程并转向持续部署时,我们遇到了如何管理生产密码的问题。对于配置中的其他更改,我们使用 Web.Config 转换。但是,我真的不想在构建配置文件中烘焙生产密码。

在 CI/CD 之前,我们会获取 Web.config,使用 aspnet_regiis 解密连接字符串,更改密码,然后重新加密。显然,这很容易出错,根本不符合 CI/CD 的精神。

我还有其他几个想法,基本上都是关于在部署脚本中使用某些东西来重写然后加密文件的连接字符串部分,但这似乎一定是一个常见问题,而且必须是一些普遍接受的解决方案。但到目前为止,我找不到它。有没有“正确的方法”?

谢谢!

最佳答案

自 TeamCity 7.0 起可用的一种可能的解决方案是使用 typed parameters .您可以在 TeamCity 中定义一个 password 类型的参数,并以某种方式将其传递给您的构建脚本(作为环境变量或作为您的构建脚本属性)。

TeamCity 将此类参数的值存储在其自己的配置文件中,并以加密形式存储在数据库中。如果密码出现在构建日志或构建参数页面上,它将被替换为 ***。

关于c# - 在持续部署中管理密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470703/

相关文章:

c# - EntityFramework Core 1.1.0 缺少 Include()?

c# - 处理套接字/完成两次的问题?

c# - MVC4 索引操作无法正常工作

javascript - 在服务器端捕获所有 JavaScript 客户端错误

c# - 在 Radiobuttonlist 的确认框中单击“确定”后页面不会回发

c# - Dot Net Core 2.0 多重cookie

javascript - 在MVC 3中使用Url.Content加载JS文件

continuous-integration - 如何保持 Sitecore 数据库一致?

continuous-integration - 更好的 CruiseControl.NET 报告

android - 如何仅使用 CLI 在 Linux 上安装 Android SDK?