LogonUser仅适用于我的域

时间:2009-06-14 18:26:07

标签: c# winapi impersonation

我需要使用C#模拟用户。 我使用LogonUser Win32 API。 当模拟与当前登录用户相同的域中的用户时,此方法可以正常工作。 但是,当我尝试模仿来自其他域的用户时,我会收到“假”作为回复。

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:5)

正如乔尔所说,你需要在域名之间建立信任。

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

您尝试访问的域必须信任该进程的计算机和用户帐户以进行委派。

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

希望这有帮助

设拉子

答案 1 :(得分: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将失败。