以不同用户身份运行应用程序

时间:2016-06-27 11:49:18

标签: c# .net wpf xaml

我想以不同的用户身份运行我的项目,但我看到的所有解决方案都是以不同的用户身份启动流程。我想将用户名硬编码到项目中,以便每次运行程序时它都以该用户身份运行。我需要这样做的原因是,在我的网络上没有权限的用户能够在服务器上启动和停止服务。

因此我需要将用户名和密码安全地存储在程序中,以便每次运行时都以该用户身份运行。

正如我之前所说,以前我发现的只是模仿用户只是为了启动一些外部进程,但我需要从该用户开始。

编辑

我找到了问题的解决方案及其PsExec。

3 个答案:

答案 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类提供所需的参数(如用户名,密码,启动过程),它将使用这些用户凭据成功启动它。

更多信息: - https://social.technet.microsoft.com/Forums/scriptcenter/en-US/e20ddf85-26ba-45a7-a987-89de076eda23/solved-run-program-as-different-user-through-batch-file?forum=ITCG

E.g。 psexec \ workstation64 -c test.bat -u USERNAME -p PASSWORD

它在我的案例中没有任何问题。

答案 2 :(得分:-2)

您需要更改应用程序池标识。进入高级,查找身份,选择自定义帐户并输入凭据。

enter image description here

编辑:我猜你最初是在IIS senario。由于您将要求更改为WPF,因此该答案无效。请不要理会。

由于