将外部二进制文件作为其他用户运行

时间:2014-01-14 10:55:29

标签: c# security

我正在测试一个小型实用程序。它的行为会有所不同,具体取决于它是否以管理权限运行。因此,我的测试框架需要使用和不使用管理员权限来调用程序,以检查它是否正常运行。

测试框架是用C#编写的。我们的CI服务器将在每天的午夜进行测试,因此不会出现访问确认或类似情况;没有人可以按下按钮或输入凭证。如果可能的话,我宁愿避免存储管理员的密码。

我从哪里开始?看起来ProcessStartInfo可以使用用户名,域名和密码 - 但这需要将管理员密码编译到测试框架中。 (比如 可以在多台PC上运行!)我也看到过关于WindowsIdentity和模仿的答案 - 但这似乎是要改变<的用户ID em>当前进程,而不是我试图调用的外部进程。

1 个答案:

答案 0 :(得分:1)

这个怎么样:

  • 您的测试框架需要通过命令行参数
  • 获取管理员权限的用户名/密码
  • 你的CI服务器用参数调用它 - 至少你必须存储密码。任何非交互式解决方案都需要在某处存储密码
  • 您的测试框架将使用ProcessStartInfo生成应用程序。

至少密码不再存储在代码中,这样可以更好地管理密码,而不是将密码泄露到管理员的范围之外;)

BR Florian