我正在尝试使用this code从我的本地计算机(Windows 8.1)登录到受限制的网络共享(在头节点上使用Windows Server 2012),我似乎无法让它工作 .
两台计算机都位于同一个域(已验证),我使用的帐户是本地计算机上的管理员,我尝试模拟的帐户在托管共享的计算机上具有管理员权限 . 我可以使用凭证安装共享就好了 .
但是当我运行这行代码时:
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 .
无论我使用什么凭据,这似乎都会发生 - 如果我使用自己的凭证(我知道这很好!)就会发生这种情况 .
我似乎无法找到解决方案 - 我找到的文档是针对不同的用例(我认为),并涉及从域中删除一台机器(哪一个?)并重新加入 .
关于如何调试这个的任何建议?解决方案?建议?
1 回答
所以我找到了答案 .
LOGON32_LOGON_INTERACTIVE
不对 .LOGON32_LOGON_NEW_CREDENTIALS
是什么用 .在this page上,他们描述了变量是什么,而不是值 . 您需要实际查看
winbase.h
中的#define
(我找到了一个版本here),它显示了这些变量的值 . 在这种情况下,您需要使用9
的登录类型值而不是2
. 在C#land中,它只是更多的工作,但......它的工作原理:)