【问题标题】:Encrypt connection String IIS 7加密连接字符串 IIS 7
【发布时间】:2017-11-27 06:10:55
【问题描述】:

我正在使用 TFS 2017 Realese 定义来部署我的网站,我的密码和用户名环境变量是隐藏的,但是当传递连接字符串时 Web.config 文件显示密码和用户名如何加密 web.config 中的连接字符串文件?

【问题讨论】:

    标签: encryption tfs web-config connection-string


    【解决方案1】:

    您可以在命令提示符(cmd.exe)中运行此命令:

    %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/SampleApplication"
    

    其中 SampleApplication 是您在 IIS 中的应用程序的名称 请参阅this article 了解更多信息。

    【讨论】:

    • 您好,感谢您的回答,但我无法使用此命令。
    • 我得到了它的工作,但不得不修改一下。检查我的答案。
    【解决方案2】:

    更新

    要加密 web.config 文件中的连接字符串,TFS 构建任务无法执行此操作。它与IIS更相关。建议你看看这个博客:Encrypting connectionStrings in Web.Config using the NetFrameworkConfigurationKey in an IIS Web Farm scenario


    在 VSTS 发布期间,您可以尝试通过 Replace Token task 替换 web.config 中的特定值。示例截图:

    对于这个Replace Token任务的配置,可以替换#{con}# 到con变量值(创建一个变量(变量名:con)在 所有 .config 文件的构建定义的变量选项卡(具有 #{con}# 代码)在 $(System.DefaultWorkingDirectory) 位置。

    <connectionStrings>
        <add name="DefaultConnection" connectionString="#{con}#" providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    【讨论】:

    • 我已经替换了令牌任务,用发布定义的 env 变量替换了 connectionString 我应该创建另一个任务吗?
    • @WojtekT 很抱歉对您的原始问题产生了误解。此任务不会加密 web.config 文件中的 Connection sctring。您的问题似乎与 TFS 无关。 TFS 无法做到这一点,它与 IIS 更相关。对该领域不熟悉,建议你看看这个类似的问题:blogs.msdn.microsoft.com/friis/2014/10/28/…
    【解决方案3】:

    我使用@Arman 的答案让它工作了,但不得不稍微修改一下,我必须默认指定站点编号,它的 1 是一个不同的网站,请查看此链接以了解如何找到您的网站编号。 link

    %%windir%%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2"
    

    在我的情况下,该站点是 2 号。您还必须以管理员身份运行命令提示符。

    感谢您的所有回答。

    【讨论】:

      【解决方案4】:

      你必须浏览aspnet_regiis,然后使用pef和pdf命令以及节名和webconfig文件的路径执行命令。

      【讨论】:

        猜你喜欢
        • 2013-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-05
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多