【问题标题】:Octopus Post Deploy Encrypt Application SettingsOctopus Post Deploy 加密应用程序设置
【发布时间】:2016-05-06 15:33:54
【问题描述】:

有谁知道在使用 Octopus 进行部署时,是否有教程显示如何在 PostDeploy.ps1 中对 ApplicationSettings 进行加密?或者可以给我看一个 powershell 脚本应该是什么样子的例子吗?

编辑:

这是我要加密的 App.config 区域的示例:

 <?xml version="1.0"?>
  <configuration>
    <applicationSettings>
        <SmsSurveysWeb.Properties.Settings>
            <setting name="WebSiteUrl" serializeAs="String">
                <value>http://myurl</value>
            </setting>
            <setting name="SmsSurveysConnectionString" serializeAs="String">
               <value>Database=MyDatabase;Data Source=MySource;User ID=MyUser;Password=MyPassword;Application Name=My Application;</value>
            </setting>
        </SmsSurveysWeb.Properties.Settings>
    </applicationSettings>
 </configuration>

【问题讨论】:

  • 您能否提供一些您现在拥有的示例代码并显示您想要加密的部分?我对章鱼一无所知,但对您要加密的内容以及脚本中如何使用该数据有更好的了解,并且可能有答案。
  • myurl</value> Database=MyDatabase;Data Source=MySource;User ID=MyUser;Password=MyPassword;Application Name=My Application;
  • 请将其编辑到您的问题中,并显示该数据在代码中的使用方式。

标签: powershell encryption octopus-deploy


【解决方案1】:

我想通了。我需要使用 OpenMappedExeConfiguration 方法。

$configurationFileMap = New-Object -TypeName System.Configuration.ExeConfigurationFileMap
$configurationFileMap.ExeConfigFilename = ".\Web.config"

$c =[System.Configuration.ConfigurationManager]::OpenMappedExeConfiguration($configurationFileMap, [System.Configuration.ConfigurationUserLevel]"None")
$s=$c.GetSection("applicationSettings/ProjectName.Properties.Settings")

$s.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")
$c.Save()

【讨论】:

  • 使用上述代码时出现错误。您不能在空值表达式上调用方法。错误 C:\Octopus\Work\20190503103132-232596-1287\Script.ps1:8 char:1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
相关资源
最近更新 更多