LSALogonUser Access Denied Error
From: B111Gates (justengland_at_gmail.com)
Date: 06/22/05
- Previous message: Matthew Townsend: "RE: Impersonation / access rights for application"
- Next in thread: Joe Kaplan \(MVP - ADSI\): "Re: LSALogonUser Access Denied Error"
- Reply: Joe Kaplan \(MVP - ADSI\): "Re: LSALogonUser Access Denied Error"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: 22 Jun 2005 13:19:28 -0700
I am tring to use LSALogonUser to authenticate my application. The
program requirements dictate that I cannot use LogonUser. I want to be
able to use this on SAM accounts and Active Directory and be able to
access the information from any domain. Thus I feel this is
LSALogonUsers Job(I could be wrong I have been before :)
Anyway I am getting a Access Denied error relevent code below.
'This is my structure
Public Structure MSV1_0_LM20_LOGON
Public MessageType As MSV1_0_PROTOCOL_MESSAGE_TYPE
Public LogonDomainName As String
Public UserName As String
Public Workstation As String
Public aryPassword As Char() 'Password
Public CaseSensitivePassword As String
Public CaseInsensitivePassword As String
Public ParameterControl As UInt32
End Structure
'API Call
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Assert,
Name:="FullTrust", Unrestricted:=True)> _
Declare Auto Function LsaLogonUser Lib "Secur32.dll" _
(ByVal LSA_Handle As IntPtr, _
ByRef OriginName As LSA_STRING, _
ByVal LogonType As SecurityLogonType, _
ByVal AuthenticationPackage As UInt32, _
ByVal AuthenticationInformation As IntPtr, _
ByVal AuthenticationInformationLength As UInt32, _
ByVal LocalGroups As IntPtr, _
ByRef SourceContext As TOKEN_SOURCE, _
ByRef ProfileBuffer As IntPtr, _
ByRef ProfileBufferLength As UInt32, _
ByRef logonid As Int64, _
ByRef Quotas As QUOTA_LIMITS, _
ByRef SubStatus As UInt16) _
As UInt16
Public Sub CallMain(ByVal strUserName As String, ByVal strPassword As
String, ByVal strDomain As String)
'Get a pointer to the above structure
'Build the MSV1_0_LM20_LOGON structure
Dim LoginRequest As MSV1_0_LM20_LOGON
Dim ptrLoginRequest As New IntPtr
Dim lenLoginRequest As Integer
lenLoginRequest = Marshal.SizeOf(GetType(MSV1_0_LM20_LOGON))
ptrLoginRequest = Marshal.AllocCoTaskMem(lenLoginRequest)
Marshal.StructureToPtr(LoginRequest, ptrLoginRequest, True)
'Generate the Pointer
With LoginRequest
.UserName = strUserName
.LogonDomainName = strDomain
.Workstation = Environment.MachineName
.aryPassword = strPassword.ToCharArray
'This is MSV1_0_CLEARTEXT_PASSWORD_ALLOWED
'I will need to change this for production as
'This sends unsecured passwords.
'Specifies attributes of the other parameters.
'This can be one or more of the following flags.
.ParameterControl = converter.ConvertFromString("2")
.CaseInsensitivePassword = strPassword
.CaseSensitivePassword = strPassword
End With
intStatus = Convert.ToInt32(status)
If Not Convert.ToInt32(status) = 0 Or Not Convert.ToInt32(mStatus)
MsgBox(Convert.ToInt32(status))
Throw New Win32Exception(Marshal.GetLastWin32Error())
End If
the function returns a access denied error
- Previous message: Matthew Townsend: "RE: Impersonation / access rights for application"
- Next in thread: Joe Kaplan \(MVP - ADSI\): "Re: LSALogonUser Access Denied Error"
- Reply: Joe Kaplan \(MVP - ADSI\): "Re: LSALogonUser Access Denied Error"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Relevant Pages
|