OK, so after trolling through thousands of pages of blogs, forums, and documentations, I finally found a solution. And, as usual, it is something so unbelieveably simple that the issue was just in how I was crafting the root authentication path.
So, I will post what I did in case someone else runs across this issue.
First - add a web reference to system.directoryservices
next add an import -
Imports System.DirectoryServices
next - after decrypting the username and password, pass it to a function like this:
Private Function PlainTextValidateUser(ByVal username As String, ByVal pwd As String) As Boolean
Dim result As Boolean = False
Dim myLDAPPath As String = "LDAP://-------"
Try
Dim entry As DirectoryEntry = New DirectoryEntry(myLDAPPath, username, pwd)
Dim nativeObject As Object = entry.NativeObject
result = True 'no exception thrown, user must exist
nativeObject = Nothing 'be sure and clean up these object as this service could be used many times
entry = Nothing
Catch ex As Exception
result = False 'exception thrown - no user with that name/pwd combination
End Try
Return result
End Function
I'll credit this site for turning me in the right direction:
http://dotbay.blogspot.com/2009/05/querying-ldap-from-c.html
of course, you will have to provide the name of the server on which your LDAP resides. This runs remotely and returns true/false. Also, doesn't create any logon session or bind any resources or open any security risks or any SQL injection issues.
HTH - Enjoy!
Brian