首页 文章

Windows模拟LogonUser错误

提问于
浏览
3

我正在尝试使用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 回答

  • 3

    所以我找到了答案 . LOGON32_LOGON_INTERACTIVE 不对 . LOGON32_LOGON_NEW_CREDENTIALS 是什么用 .

    this page上,他们描述了变量是什么,而不是值 . 您需要实际查看 winbase.h 中的 #define (我找到了一个版本here),它显示了这些变量的值 . 在这种情况下,您需要使用 9 的登录类型值而不是 2 . 在C#land中,它只是更多的工作,但......它的工作原理:)

相关问题