我需要使用 C# 模拟用户。我使用 LogonUser Win32 API。当模拟与当前登录用户来自同一域的用户时,这可以正常工作。但是,当我尝试模拟来自其他域的用户时,我得到“假”作为响应。
什么会导致这种情况?
我需要使用 C# 模拟用户。我使用 LogonUser Win32 API。当模拟与当前登录用户来自同一域的用户时,这可以正常工作。但是,当我尝试模拟来自其他域的用户时,我得到“假”作为响应。
什么会导致这种情况?
正如乔尔所说,您需要域之间的信任。
您还需要注意执行委托的进程的安全上下文,以及您正在运行的机器所在的域。
您尝试访问的域必须信任进程的机器和用户帐户才能进行委派。
这意味着您的代码应该在您尝试访问的域上运行。
希望这可以帮助
设拉子
您应该在 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 将失败。