gpt4 book ai didi

c# - 如何向控制台应用程序提供密码?

转载 作者:行者123 更新时间:2023-12-05 02:23:33 25 4
gpt4 key购买 nike

当我在测试当前应用程序时遇到问题时,我经常不得不调整应用程序使用的数据库。在多次丢失重要更改后,我编写了一个程序,将我的数据库备份到一个文件,然后将该文件 checkin SubVersion。我发现备份应用程序不够好。

数据库是 PostgreSQL 数据库,我的备份应用程序调用 pg_dump 来创建备份文件。 pg_dump 在控制台窗口中执行。当数据库在我自己的机器上时,它运行良好。但是当我将数据库移动到我们的测试服务器时,pg_dump 要求输入密码。虽然这没什么大不了的,但我希望能够自动提供密码,因为它在备份应用程序中可用。

我已尝试遵循我在此处找到的建议,但 pg_dump 仍然停止并要求输入密码。这是我认为应该提供密码的代码:

Process backupProcess = new Process();
backupProcess.StartInfo.UseShellExecute = false;
backupProcess.StartInfo.RedirectStandardInput = true;
backupProcess.StartInfo.FileName = dumpPath + "pg_dump.exe";
backupProcess.StartInfo.Arguments = " --host " + host +
" --port " + port +
" --username " + userName +
" --format custom --blobs --verbose --file " +
"\"" + txtBackupFile.Text + "\" " + dbName;
backupProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
backupProcess.Start();
StreamWriter standardInput = backupProcess.StandardInput;
standardInput.WriteLine("mypassword");
backupProcess.WaitForExit();// Waits here for the process to exit.

感谢您的帮助。

罗布

最佳答案

我已经用

解决了这个问题
backupProcess.EnvironmentVariables["PGPASSWORD"] = "password";

这样我就避免了密码会被存储在电脑上

关于c# - 如何向控制台应用程序提供密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com