4

我需要使用 C# 模拟用户。我使用 LogonUser Win32 API。当模拟与当前登录用户来自同一域的用户时,这可以正常工作。但是,当我尝试模拟来自其他域的用户时,我得到“假”作为响应。

什么会导致这种情况?

4

2 回答 2

5

正如乔尔所说,您需要域之间的信任。

您还需要注意执行委托的进程的安全上下文,以及您正在运行的机器所在的域。

您尝试访问的域必须信任进程的机器和用户帐户才能进行委派。

这意味着您的代码应该在您尝试访问的域上运行。

希望这可以帮助

设拉子

于 2009-06-15T01:33:27.397 回答
4

您应该在 LogonUser 失败后立即尝试调用 GetLastError 以查看是否给出了任何错误信息。

http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx

从 c# 调用 GetLastError 可能存在一些问题。
在这里查看更多信息:http: //blogs.msdn.com/adam_nathan/archive/2003/04/25/56643.aspx

您的两个域之间是否存在信任?否则,LogonUser 将失败。

于 2009-06-14T19:31:35.223 回答