LogonUser API call...

P

paul

Hi,

Is there a reliable way to check a users username and password from
within a macro against an NT domain? I've tried using the Win32 API
call LogonUser, but without success, getting the
ERROR_PRIVILEGE_NOT_HELD error message.

Cheers for any help...

Paul
 
J

Jan Karel Pieterse

Hi,

This gets the username:

Option Explicit
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''
' Copyright ©1996-2001 VBnet, Randy Birch, All Rights
Reserved.
' Some pages may also contain other copyrights by the
author.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''
' You are free to use this code within your own
applications,
' but you are expressly forbidden from selling or otherwise
' distributing this source code without prior written
consent.
' This includes both posting free demo projects made from
this
' code as well as reproducing the code in text or html
format.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''

Private Const MAX_USERNAME As Long = 256

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

Function rgbGetUserName() As String

'return the name of the user
Dim tmp As String

tmp = Space$(MAX_USERNAME)

If GetUserName(tmp, Len(tmp)) Then
rgbGetUserName = TrimNull(tmp)
End If

End Function

Private Function TrimNull(item As String)
Dim pos As Integer

pos = InStr(item, Chr$(0))

If pos Then
TrimNull = Left$(item, pos - 1)
Else: TrimNull = item
End If

End Function

Don't know a way to get the password though.

Regards,

Jan Karel Pieterse
Excel TA/MVP
 
J

Jake Marx

Hi Paul,

You can do this with ADSI (search Google for "OpenDSObject" for more
information). But why do you want to do this? If there is a certain file
or folder you want to access, then just try it, and the user can
authenticate if needed. I for one would be hesitant to enter my network
username/password into a non-Windows dialog.
 
P

paul

Thanks chaps, Tim's suggestion works well and fast too. I couldn't get
the ADSI calls to work, Excel would't recognize the object types...

cheers,
Paul
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top