如何恢复与发布配置文件关联的密码?

How do I restore passwords associated with Publish Profiles?

我使用发布(Web 部署)将 MVC 和 Web API 应用程序部署到 Azure Web 服务。当我这样做时,会创建一个 .pubxml 文件并将其存储在源代码管理中,但密码(可以理解)不在该文件中。

现在假设我有 5 个开发人员,但我只希望其中 2 个能够进行部署。到目前为止,我们对我和 3 名不应该能够进行部署的开发人员都很好。但是其他部署者呢?或者如果我也想从第二个工作站部署(或者必须擦除我的主工作站)怎么办?我应该如何为我的另一台机器恢复部署密码或允许其他部署者为自己恢复它?

我确定去 Azure 门户拉下发布配置文件是解决方案的一部分,但以最佳实践方式执行此操作的其余部分是什么?

更新: 我不希望将我的部署过程更改为从 Visual Studio 发布。这是用于原型设计应用程序,我不会投资编写构建自动化的脚本,直到我们有更少的流失和我们不会丢弃的东西。但我仍然不会将 Azure 发布凭据放入源代码管理中。微软对如何做到这一点有远见——这就是我正在寻找的。

旁注:我有一个 Jenkins 构建服务器,可将一套 14 个应用程序推送到 Azure 中的 37 个不同 服务器(云服务、应用程序服务、虚拟机等)。我得到它。但这不是正确的解决方案。

正确的解决方案是停止从 Visual Studio 发布。在适当的工具(如 TFS RM、VSO 或 Octopus Deploy)中创建一个小型发布管道来部署您的应用程序。

在您的 .pubxml 文件中,您将输入一个伪造的密码,您将使用您的持续部署管道在部署之前及时插入正确的值。我上面提到的所有解决方案都有详细的访问控制和输入无法返回的替换值的可能性。

originally-posted 问题的答案是:

  1. 转到 Azure 门户并为您需要执行此操作的所有应用程序下载发布配置文件。您目前可以通过 selecting App Services -> [select appropriate app service] -> Overview -> “... More”(在顶部)-> Get publish 通过现代门户来执行此操作个人资料。
  2. 在 Visual Studio 中,为您的应用程序拉出“发布”对话框
  3. Select 您要更新的发布配置文件(如果您有多个,则必须对每个配置文件执行这些步骤)
  4. 单击“后退”按钮,直到您看到空白的密码文本框
  5. 打开您在第 1 步中下载的相应发布配置文件 XML 文件,然后从 userPWD 字段中复制密码。
  6. 将该密码粘贴到第 4 步中的文本框中。

  1. 取消选中并重新选中 "Save password" 框(我发现除非我这样做,否则它有时不会真正保存,但有时它会保存 - 一旦我执行此步骤就再也没有问题)
  2. 验证连接。如果这成功了,你应该是好的。
  3. 点击“下一步”直到最后,但作为附加测试,执行预览只是为了确保一切都还好。

这些步骤可能会更改您的 pubxml 文件,但也可能不会。如果 Visual Studio 正在管理密码,则密码不会存储在该文件中,而是存储在通常不受源代码控制的其他地方。但是,我建议您采取重要的附加步骤对您提交给源代码管理的所有内容执行差异,以确保此发布密码不是意外提交的!