对于错误的密码,LogonUser返回true

时间:2016-02-11 11:54:23

标签: c++ winapi login impersonation

bool bRet=LogonUser(strUserName, L"", strPassword, LOGON32_LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &phToken)     

即使我在没有域名时输入了错误的密码,bRet也会返回true。是否有任何解决方法,如果我输入有效密码,它会返回true,如果没有域,则返回错误密码。

1 个答案:

答案 0 :(得分:6)

我认为select * from :P2_LIST||_1 实际上是LOGON32_LOGON_TYPE_NEW_CREDENTIALS。在这种情况下,行为完全符合预期。该标志的文档说:

  

此登录类型允许调用者克隆其当前令牌并为出站连接指定新凭据。新登录会话具有相同的本地标识符,但对其他网络连接使用不同的凭据。

对于本地连接,返回的令牌是当前令牌的克隆。您提供的凭据用于出站连接。当您尝试此类连接时,将在该点检查凭据,然后您可能会遇到故障。