对于 ASP.NET Web 应用程序,我无法使用 LDAP 成功验证用户。我已经在我们自己的网络上针对 Active Directory 执行此操作,但这是针对我们网络之外的 OID(Oracle Internet 目录)服务器。
通常,我使用以下代码没有问题。
Dim myDirectoryEntry As New System.DirectoryServices.DirectoryEntry("LDAP://1.2.3.4:999/OU=SomeOU,DC=Something,DC=com")
myDirectoryEntry.AuthenticationType = System.DirectoryServices.AuthenticationTypes.Sealing
myDirectoryEntry.AuthenticationType = System.DirectoryServices.AuthenticationTypes.Secure
Try
myDirectoryEntry.Username = txtUserID.Text.Trim
myDirectoryEntry.Password = txtPassword.Text.Trim
Dim mySearcher As New System.DirectoryServices.DirectorySearcher(myDirectoryEntry)
mySearcher.Filter = ("(anr= " & txtUserID.Text & ")")
Dim result As System.DirectoryServices.SearchResult = mySearcher.FindOne
Catch ex As Exception
'failed log in handling
End Try
对于此应用程序,我将针对我们网络外部的目录,并且上述方法失败(服务器不支持请求的身份验证方法。)。
我可以使用以下方法成功绑定到 LDAP 服务器:
Dim serverName As String = "1.2.3.4:999"
Dim dn As String = "cn=somename,cn=users,dc=something,dc=gov"
Dim ServerCon As New LdapConnection(serverName)
ServerCon.AuthType = AuthType.Basic
Dim cred As New System.Net.NetworkCredential(dn, "password")
ServerCon.Bind(cred)
在那之后,我一直无法找到一种方法来使用他们的密码验证用户的登录信息,然后拉回一些信息。