找回密码
 加入
搜索
查看: 254|回复: 8

[系统综合] [已解决]遇到个验证windows密码的问题,请教各位朋友

[复制链接]
发表于 2024-6-12 15:41:29 | 显示全部楼层 |阅读模式
本帖最后由 anythinging 于 2024-6-12 17:20 编辑

一直用下面这段代码检验windows系统中的用户密码是否正确,忽然发现个问题,这段代码在域控制器上运行,无法成功较验密码总是提示密码错误,在非域控制器上运行正常。
已确认用户名、密码、域名肯定正确,
怀疑是需要调这2个参数,因为不明白含义,没能成功,请各位朋友帮忙看看。
                'dword', 2, _ ; LOGON32_LOGON_INTERACTIVE
                'dword', 0, _ ; LOGON32_PROVIDER_DEFAULT



Local $sUsername = 'aaa'
Local $sPassword = 'abc123'
Local $phToken = DllStructCreate("int")
Local $aRet = DllCall('advapi32.dll', 'bool', 'LogonUser', _
                'str', $sUsername, _
                'str', 'domain', _
                'str', $sPassword, _
                'dword', 2, _ ; LOGON32_LOGON_INTERACTIVE
                'dword', 0, _ ; LOGON32_PROVIDER_DEFAULT
                'ptr', DllStructGetPtr($phToken))
If Not @error And $aRet[0] <> 0 Then
        MsgBox(0, '', '密码正确!')
Else
        MsgBox(0, '', '密码错误!')
EndIf

 楼主| 发表于 2024-6-12 16:49:09 | 显示全部楼层
目前的进展:
反复测试发现,验证的域用户如果如果是管理员组的话,可以成功验证密码是否正确。
但如果是非管理员组如domain users组的话,不能验证成功。
发表于 2024-6-12 16:54:27 | 显示全部楼层
加 #RequireAdmin 有效吗
 楼主| 发表于 2024-6-12 17:03:48 | 显示全部楼层
afan 发表于 2024-6-12 16:54
加 #RequireAdmin 有效吗

无效,不过我好象弄出来了,应该是怀疑的那2个选项的问题,目前好象一个一个试出来了
 楼主| 发表于 2024-6-12 17:19:08 | 显示全部楼层
解决方法:
必需=3        'dword', 3, _ ; LOGON32_LOGON_INTERACTIVE
=0-3都可以  'dword', 0, _ ; LOGON32_PROVIDER_DEFAULT

这个是参考文档,https://learn.microsoft.com/zh-c ... -winbase-logonusera

3应该对映的是LOGON32_LOGON_NETWORK,如果不用3,而是用"LOGON32_LOGON_NETWORK"不知如何代入到代码中?
发表于 2024-6-12 17:29:00 | 显示全部楼层
这么快就解决了吗?高手啊!
 楼主| 发表于 2024-6-12 18:11:35 | 显示全部楼层
感谢回复,也给后来的人留个标记。
发表于 2024-6-12 19:54:15 | 显示全部楼层
楼主好人呀
发表于 2024-6-13 12:10:26 | 显示全部楼层
anythinging 发表于 2024-6-12 18:11
感谢回复,也给后来的人留个标记。

是的,后来有需要的可以查,方便,少折腾
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 10:54 , Processed in 0.083507 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表