首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么LogonUser函数总是使用LOGON32_LOGON_NETWORK模式返回true?

为什么LogonUser函数总是使用LOGON32_LOGON_NETWORK模式返回true?
EN

Stack Overflow用户
提问于 2013-07-22 17:58:34
回答 1查看 3.4K关注 0票数 10

我需要在我的LogonUser服务器应用程序上使用函数,但是不管用户和密码匹配还是存在,这个函数总是返回true。只有在传递给函数的模式为LOGON32_LOGON_NETWORK时才会发生这种情况。

代码语言:javascript
复制
{$APPTYPE CONSOLE}


uses
  SysUtils,
  Windows;
var
  hUser : THandle;
  res   : Boolean;
begin
    try
      res := LogonUser(LPWSTR('user'),
                              LPWSTR(nil),
                              LPWSTR('password'),
                              LOGON32_LOGON_NETWORK,
                              LOGON32_PROVIDER_DEFAULT,
                              hUser);


    finally
      if hUser>0 then
      CloseHandle(hUser);
    end;
    Writeln(BoolToStr(res, true));
    readln;
end.

如果使用LOGON32_LOGON_INTERACTIVE,则函数工作正常(根据传递的用户和密码返回true或false )。

注意:我使用LOGON32_LOGON_NETWORK登录类型,因为文档显示哪个是最快的。

为什么LogonUser函数总是使用LOGON32_LOGON_NETWORK模式返回true?

更新

此问题发生在Windows 7 64位极限中

在Windows 7 32位专业工作很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-22 19:04:59

我可以复制你的问题,它似乎与客人帐户和安全政策有关。首先,当您使用LogonUser函数时,将生成一个新事件安全性。您可以检查登录到该窗口的用户帐户。

检查下一个图像(西班牙语中的Invitado=Guest)

因此,在这种情况下,无论您使用哪个用户,客户用户都被用来登录。可以修复此行为,修改本地安全策略,禁用来宾帐户状态。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17794229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档