1

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)

その後、パスワードを使用してユーザーのログイン情報を確認し、いくつかの情報を引き出す方法を見つけることができませんでした。

4

1 に答える 1

0

サーバーが Kerberos 認証をサポートしていない可能性があります。ディレクトリ サーバーは、要求された認証方法がサポートされておらず、接続の認証状態を設定できない場合、応答で受信したエラー コードを返す必要があります。これは、サポートされていない SASL メカニズムで発生する可能性があります。サポート SASL メカニズムは、ルート DSEにリストされている必要があります。

于 2011-11-18T20:56:57.640 に答える