February 28, 2021
Hot Topics:

Verify the Windows Password

  • By Sam Huggill
  • Send Email »
  • More Articles »

Add a new bas module (modVerifyPassword) and copy the following code into it:

Option Explicit

Declare Function GetUserName Lib "advapi32.dll" Alias _
  "GetUserNameA" (ByVal lpBuffer As String, _
  nSize As Long) As Long

Private Declare Function WNetVerifyPassword _
    Lib "mpr.dll" Alias _
    "WNetVerifyPasswordA" _
    (ByVal lpszPassword As String, _
    ByRef pfMatch As Long) As Long

Public Function GetWindowsLoginUserID() As String
Dim rtn As Long
Dim sBuffer As String
Dim lSize As Long

sBuffer = String$(260, Chr$(0))
lSize = Len(sBuffer)
rtn = GetUserName(sBuffer, lSize)
If rtn Then
  sBuffer = left$(sBuffer, lSize)

  'Reformat string
  If InStr(sBuffer, Chr$(0)) Then
    sBuffer = left$(sBuffer, InStr(sBuffer, Chr$(0)) - 1)
  End If

  GetWindowsLoginUserID = sBuffer
  GetWindowsLoginUserID = ""
End If
End Function

Public Function VerifyWindowsLoginUserPassword _
  (ByVal Password As String) As Boolean
Dim rtn As Long, Match As Long
rtn = WNetVerifyPassword(Password, Match)
If rtn Then
  VerifyWindowsLoginUserPassword = False
  VerifyWindowsLoginUserPassword = (Match <> 0)
End If
End Function

Page 2 of 3

This article was originally published on November 20, 2002

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date