gpt4 book ai didi

c# - Verb = "runas"的进程不以参数中定义的凭据开始

转载 作者:行者123 更新时间:2023-11-30 18:18:54 25 4
gpt4 key购买 nike


这个

var psi = new ProcessStartInfo("cmd")
{
Verb = "runas",
UseShellExecute = true,
Arguments = "/user:domain\\username"
};
var ps = Process.Start(psi);

不使用给定的凭据启动命令行窗口,也不要求输入密码。我想知道如何正确使用它。

有人告诉我,不应该使用 StartInfo.UserName、Domain 和 Password 方法,因为它不安全。

最佳答案

我不会说使用这种内置的 .NET 功能是不安全的:只要不在其中保存明文密码就可以了。只需按照 .NET 的要求向您的 ProcessStartInfo 提供所有非关键属性,然后提示用户输入密码:

var psi = new ProcessStartInfo("cmd")
{
UseShellExecute = true,
UserName = "username",
Domain = "domain"
};

SecureString password = new SecureString();

Console.WriteLine("Please type in the password for 'username':");
var readLine = Console.ReadLine(); // this should be masked in some way.. ;)

if (readLine != null)
{
foreach (var character in readLine)
{
password.AppendChar(character);
}

psi.Password = password;
}

var ps = Process.Start(psi);

但是,正如我的评论所述,您应该以某种方式屏蔽密码提示。见Password masking console application有关如何实现此目标的示例...

关于c# - Verb = "runas"的进程不以参数中定义的凭据开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40285791/

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