Шифрование пароля в файле MSBuild

Я хочу зашифровать пароль, который я предоставляю в следующем коде:

<Target Name="Default">
    <!-- Install a service on a Remote Machine -->
    <MSBuild.ExtensionPack.Computer.WindowsService 
        TaskAction="Install" 
        ServiceName="__TestService1" 
        User="$(User)" 
        Password="$(password)"
        ServicePath="c:\WINDOWS\system32\taskmgr.exe" 
        RemoteUser="$(RemoteUser)" 
        RemoteUserPassword="$(RemoteUserPassword)" 
        MachineName="$(RemoteMachine)" />
</Target>

Я не хочу жестко кодировать пароль. Как я могу зашифровать это? Пожалуйста, предоставьте ваше предложение. Я погуглил, но не смог найти решение, которое будет работать на меня.

Спасибо.

1 ответ

Есть много способов сделать это. Я опишу только два самых простых:

Задумывались ли вы об использовании функции шифрованной файловой системы NTFS?

Сохраните пароль в файле в виде открытого текста и отметьте файл как зашифрованный. Тогда только пользовательский файл (по умолчанию) имеет доступ к файлу (если вы более параноик, вы можете ограничить доступ, правильно установив ACL для данного файла паролей). Тогда вы можете легко прочитать пароль

<ReadLinesFromFile File="$(PasswordFile)" >
  <Output TaskParameter="Lines" ItemName="Password"/>
</ReadLinesFromFile>

Другая возможность - сохранить пароль в реестре (HKLM или HKCU), настроить разрешение для выбранного пользователя по ключу. Вы можете легко прочитать значения реестра

Для предотвращения непосредственного чтения пароля из ntuser.dat (хранилище реестра - вы можете зашифровать пароль с помощью встроенной задачи, например, таким способом http://msdn.microsoft.com/en-us/library/ff649224.aspx)

Другие вопросы по тегам