2017-01-19 15 views
1

Я использую Team Services для хранения конфиденциальных данных вместо жесткого кодирования в моем коде.Доступ к секретным переменным в Visual Studio

Допустим, я определил: my_secret в name и 12345, как value в Varibles

Как получить доступ к этой переменной в моем коде?

enter image description here

В приведенном выше примере, как получить доступ к password в моем коде?

Существует документация here, но они не упоминают о том, как использовать переменную в коде.

+0

Можете ли вы показать нам код, в котором хранятся данные? –

+0

Обновлено мой вопрос – ln9187

+2

@ ln9187 В будущем вы можете использовать @, чтобы люди видели ваше сообщение. Эрик видел это, потому что он был единственным комментатором на этом посту, но это не всегда будет так. Обратите внимание: если мы на странице, появится панель «Это сообщение отредактировано». – BradleyDotNET

ответ

1

Переменные, как правило, передаются в сборку как переменные среды. Однако секреты не по умолчанию, вы можете использовать их явно в аргументах для вашего инструмента, например MyTool.exe $(password).

+1

Вот как работают * не секретные * встроенные переменные. Речь идет о секретных переменных. Вы не хотите вводить пароль базы данных в переменную среды, где каждый может ее увидеть. –

+0

@EricLippert спасибо за исправление, я обновил свой ответ соответствующим образом. – Stuart

0

Это зависит от того, что вы подразумеваете под «из кода». Если вы, скажем, вызываете скрипт, вы можете передать секрет в качестве аргумента.

В качестве примера можно привести определение сборки в формате JSON.

{ 
    "build": [ 
    { 
     "enabled": true, 
     "continueOnError": false, 
     "alwaysRun": false, 
     "displayName": "PowerShell Script", 
     "timeoutInMinutes": 0, 
     "task": { 
     "id": "e213ff0f-5d5c-4791-802d-52ea3e7be1f1", 
     "versionSpec": "1.*", 
     "definitionType": "task" 
     }, 
     "inputs": { 
     "scriptType": "inlineScript", 
     "scriptName": "", 
     "arguments": "-Baz $(Baz)", 
     "inlineScript": "param($Baz)\nWrite-Host \"1\" \nWrite-Host \"$($env:Foo)\" \nWrite-Host \"2\" \nWrite-Host \"$($env:Baz)\"\nWrite-Host $Baz", 
     "workingFolder": "", 
     "failOnStandardError": "true" 
     } 
    } 
    ], 
    "variables": { 
    "foo": { 
     "value": "bar" 
    }, 
    "baz": { 
     "value": null, 
     "isSecret": true 
    } 
    } 
} 
1

Если вы хотите получить доступ к секретным переменным во время стадии сборки (например, в пользовательской сборке задаче PowerShell на основе), как правило, вы будете использовать этот секретные переменный в качестве входного аргумента задачи, а затем использовать VSTS Task SDK ' s функция Get-VstsInput как это следующим образом:

$pwd = Get-VstsInput -Name "Input_Name_In_Task.json_File" 

Затем вы можете преобразовать его в SecureString следующим

$securePwd = ConvertTo-SecureString $pwd -AsPlainText -Force 

и в конечном итоге использовать его в ew System.Management.Automation.PSCredential объект.

 Смежные вопросы

  • Нет связанных вопросов^_^