我想以不同的用户身份运行我的项目,但我看到的所有解决方案都是以不同的用户身份启动流程。我想将用户名硬编码到项目中,以便每次运行程序时它都以该用户身份运行。我需要这样做的原因是,在我的网络上没有权限的用户能够在服务器上启动和停止服务。
因此我需要将用户名和密码安全地存储在程序中,以便每次运行时都以该用户身份运行。
正如我之前所说,以前我发现的只是模仿用户只是为了启动一些外部进程,但我需要从该用户开始。
编辑
我找到了问题的解决方案及其PsExec。
答案 0 :(得分:0)
您可以使用不同的用户凭据开始新流程(请参阅:ProcessStart)。因此,一种可能的解决方案是检查命令行参数是否已传递给应用程序(例如' / runAsOther')。如果没有,请在具有所需用户的新进程中再次启动应用程序,并传递命令行参数' / runAsOther'。
代码示例:
?- cover(SetsUsed,Cost), branch_and_bound:minimize(labeling(SetsUsed), Cost).
SetsUsed = [1, 0, 0, 0, 1, 1]
Cost = 24
Yes (0.00s cpu)
因此,我需要将用户名和密码安全地存储在程序中,以便每次运行时都以该用户身份运行。
无法在应用程序中安全存储密码,因此不建议使用。但是,您可以做的最好的事情是使用特定于机器的算法对其进行解密(例如,使用DataProtector类)。
答案 1 :(得分:0)
还有一些其他替代品可以帮助实现这一点,如PsExex工具。 https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
您可以从Process类提供所需的参数(如用户名,密码,启动过程),它将使用这些用户凭据成功启动它。
E.g。 psexec \ workstation64 -c test.bat -u USERNAME -p PASSWORD
它在我的案例中没有任何问题。
答案 2 :(得分:-2)