在 C# 客户端/服务器应用上获取“Windows 安全性”“以其他用户身份运行”框

本文关键字:其他 用户 身份 运行 安全性 Windows 服务器 应用 获取 客户端 | 更新日期: 2023-09-27 18:35:36

我编写了一个客户端/服务器应用程序,该应用程序将使用远程计算机上的Process.Start启动.exe文件。 我的家庭网络上有 4 台计算机,我在 PC2 上设置服务器应用程序并在 PC1 上设置客户端应用程序,我开始使用套接字和 TCP 在 PC2 上侦听。 然后当我准备好时,我从 PC1 发送命令以启动特定程序,我得到的是一个"Windows 安全"框,要求我"以其他用户身份运行",它为我提供了一个用户名和密码框来输入,在我输入管理员用户和相关密码后,该框消失,程序按预期启动, 问题是我不想每次想在远程PC上启动程序时在远程PC上输入用户名和密码。 我可以发送一个命令来关闭我刚刚启动的进程并且它工作正常,但是如果我尝试再次启动程序,它再次需要用户名和密码。 在 C# 中有没有办法解决这个问题? 有没有办法通过 C# 自动发送用户名和密码,这样我就不会一直弹出那个 Windows 安全框?

作为使用 Process.Start 时的旁注,我使用 ProcessStartInfo 传入 Verb 参数"runas",我认为这会导致它以管理员身份运行。

在 C# 客户端/服务器应用上获取“Windows 安全性”“以其他用户身份运行”框

通过将远程 PC 管理员用户名和密码传递到 startInfo.UserName 和 startInfo.Password 属性中,您可以绕过安全窗口弹出窗口。