Как безопасно передать аргумент, используя класс Process? - PullRequest
1 голос
/ 27 апреля 2010

Я использую System.Diagnostics.Process для выполнения команды svn из консольного приложения Windows. Это конфигурация процесса:

svn.StartInfo.FileName = svnPath;
svn.StartInfo.Arguments = string.Format("copy {0}/trunk/ {0}/tags/{1} -r head -q --username {3} --password {4} -m \"{2}\"", basePathToRepo, tagName, message, svnUserName, svnPassword);
svn.StartInfo.UseShellExecute = false;
svn.Start();
svn.WaitForExit();

Моя проблема в том, что эти аргументы, которые включают в себя учетные данные svn, отправляются (я полагаю) небезопасным способом.

Есть ли способ отправить эти аргументы безопасным способом, используя класс Process?

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 апреля 2010

Это использует стандартный механизм командной строки, который будет таким же, как и любой другой метод. Не существует «безопасного» способа отправки аргумента командной строки в программу, поскольку это просто стандартный процесс.

При этом будет доступен только локально, поскольку вы уже запускаете его в учетной записи локального пользователя. Это так же безопасно, как если бы пользователь вводил это в окно командной строки ...

1 голос
/ 27 апреля 2010

отправить куда? они передаются из вашего кода в WinApi. это операция в памяти, она достаточно безопасна.

...