|
本帖最后由 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
|
|