ASP.NET Web アプリケーションの LDAP でユーザーを正常に確認できませんでした。私は Active Directory に対して独自のネットワークでこれを行いましたが、これは OID (Oracle Internet Directory) であるネットワーク外のサーバーに対するものです。
通常、次のコードを問題なく使用します。
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)
その後、パスワードを使用してユーザーのログイン情報を確認し、いくつかの情報を引き出す方法を見つけることができませんでした。