Windows模拟LogonUser错误

本文关键字:错误 LogonUser 模拟 Windows | 更新日期: 2023-09-27 18:11:46

我试图使用此代码登录到一个受限制的网络共享(与windows server 2012在头节点)从我的本地机器(windows 8.1),我似乎不能让它工作。

两台机器都在同一个域中(已验证),我使用的帐户是我本地机器上的管理员,并且我试图模拟的帐户在托管共享的机器上具有管理员权限。我可以使用凭据挂载共享。

但是当我运行这行代码时:

bool returnValue = LogonUser(userName, domainName, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out safeTokenHandle);

我得到以下错误:The trust relationship between this workstation and the primary domain failedNativeErrorCode 1798。

无论我使用什么凭证,这种情况似乎都会发生——如果我使用我自己的凭证(我知道这是好的!)。

我似乎找不到解决方案-我找到的文档是针对不同的用例(我认为),并且涉及从域中删除一台机器(哪一台?)并重新加入。

对于如何调试有什么建议吗?解决方案?建议吗?

Windows模拟LogonUser错误

我找到了答案。LOGON32_LOGON_INTERACTIVE不对。LOGON32_LOGON_NEW_CREDENTIALS是用什么。

在本页中,它们描述了变量是什么,而不是值。实际上,您需要查看winbase.h中的#define(我在这里找到了一个版本),它显示了这些变量的值。在这种情况下,您需要使用登录类型值9而不是2。在c#领域,这只是多做了一点工作,但是……