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 failed
NativeErrorCode 1798。
无论我使用什么凭证,这种情况似乎都会发生——如果我使用我自己的凭证(我知道这是好的!)。
我似乎找不到解决方案-我找到的文档是针对不同的用例(我认为),并且涉及从域中删除一台机器(哪一台?)并重新加入。
对于如何调试有什么建议吗?解决方案?建议吗?
我找到了答案。LOGON32_LOGON_INTERACTIVE
不对。LOGON32_LOGON_NEW_CREDENTIALS
是用什么。
在本页中,它们描述了变量是什么,而不是值。实际上,您需要查看winbase.h
中的#define
(我在这里找到了一个版本),它显示了这些变量的值。在这种情况下,您需要使用登录类型值9
而不是2
。在c#领域,这只是多做了一点工作,但是……