gpt4 book ai didi

asp.net - 如何在没有源代码管理凭据的情况下转换 web.config 中的 mailSettings

转载 作者:行者123 更新时间:2023-12-01 13:21:06 24 4
gpt4 key购买 nike

我有一个使用 VSTS 部署到 Azure 应用服务的 Web 应用。到目前为止,我已经成功地使用配置转换和变量替换,以便能够在源代码管理中没有任何敏感信息,但我无法理解如何为 system.net/mailSettings 中的 smtp 凭据执行此操作/smtp/网络。

有人有什么想法吗?

最佳答案

好的,在深入挖掘并四处询问之后,似乎使用 WebDeploy 和 parameters.xml 是可行的。

这是我做的:

  1. 我添加了插件 Replace Tokens到我的 VSTS 帐户。
  2. 我在我的网站项目中添加了一个 parameters.xml,它看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
    <parameters>
    <parameter name="Mail.Username" description="The username used for smtp authentication" defaultValue="#{Mail.UserName}#" tags="">
    <parameterEntry kind="XmlFile" scope="obj\\Release\\Package\\PackageTmp\\Web\.config$" match="/configuration/system.net/mailSettings/smtp/network/@userName" />
    </parameter>
    <parameter name="Mail.Password" description="The password used for smtp authentication" defaultValue="#{Mail.Password}#" tags="">
    <parameterEntry kind="XmlFile" scope="obj\\Release\\Package\\PackageTmp\\Web\.config$" match="/configuration/system.net/mailSettings/smtp/network/@password" />
    </parameter>
    </parameters>
  3. 我的构建步骤已设置为输出包,但这些是构建步骤所需的 MSBuild 参数。 /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation=”$(build.artifactstagingdirectory)\\”如果你和我一样,正在对连接字符串进行配置转换,你可能需要添加 /p:AutoParameterizationWebConfigConnectionStrings=false以及该参数列表。

  4. 在发布配置中,在部署到 Azure 应用服务步骤之前,使用上述 Replace Tokens 添加一个步骤添加在。我坚持使用替换值的默认语法,但这些可以更改。由于我使用的是所有默认值,因此我在根目录 $(System.DefaultWorkingDirectory)/$(Build.DefinitionName)/drop 中运行任务和目标文件 *.SetParameters.xml

  5. 然后在部署到 Azure App Service 步骤中,我选择了选项使用 Web 部署发布,并为 SetParameters 文件 我二手 $(System.DefaultWorkingDirectory)/$(Build.DefinitionName)/drop/<Name of Web Project>.SetParameters.xml

  6. 部署后操作下,将部署脚本类型设置为内联脚本,并添加以下脚本。

    @echo off
    del parameters.xml

    这是因为默认情况下不提供 .config 文件,但提供 .xml 文件,否则您的 parameters.xml将位于您的 Web 根目录中,不 protected ,您的 smtp 用户名和密码为纯文本。

  7. 接下来添加名为Mail.UsernameMail.PasswordRelease Variables,并填写它们的值。我将 Mail.Password 保密了。

  8. checkin 所有内容,并触发构建和发布!

关于asp.net - 如何在没有源代码管理凭据的情况下转换 web.config 中的 mailSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49953798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com