4

LDAP マッチング ルールを使用してみましたが、LDAP マッチング ルール フィルタを使用して検索エントリを取得できません。

これは私がフィルターを送信する方法です:フィルター (&(objectclass=*)(memberof:1.2.840.113556.1.4.1941:=)(cn=gasaxena))

LDAPサーバーで受信したpcapにもフィルターをダンプしました。これは次のようになります。(&(&(objectclass=*)(memberof:1.2.840.113556.1.4.1941:=[NULL]))(cn=gasaxena))

私が何かを逃した場合、誰かが指摘できますか? サーバーはADです

4

4 に答える 4

4

次のようなグループに対して検索を実行する必要があります。

(member:1.2.840.113556.1.4.1941:=CN=John Smith,DC=MyDomain,DC=NET)

ユーザーの memberOf ではありません。

-ジム

于 2012-09-25T10:27:23.907 に答える
4

Active-Directory フィルターを理解するには、Search Filter Syntaxを参照してください。

「user1」がメンバーであるすべてのグループを検索するには:

検索で、ベースをグループ コンテナー DN に設定します。たとえば、ルート DN (dc=dom,dc=fr)

スコープをサブツリーに設定

次のフィルターを使用します。(member:1.2.840.113556.1.4.1941:=cn=user1,cn=users,DC=x)

LDIFDE.EXE の例(Windows のネイティブ コマンド ライン AD 検索):

ldifde -f t.txt -d "DC=dom,DC=fr" -r "(member:1.2.840.113556.1.4.1941:=CN=jblanc,OU=MonOu,DC=dom,DC=fr)"

これにより、jpblanc がメンバーであるすべてのグループが検索されます。

于 2012-09-25T04:00:29.503 に答える
2

memberOf:1.2.840.113556.1.4.1941:=を使用する場合は、グループの完全な識別名を使用する必要があります。私の場合はCN=MyGroup,OU=User,OU=Groups,OU=Security,DC=domain,DC=comでした識別名全体

(&(objectCategory=person)(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=MyGroup,OU=User,OU=Groups,OU=Security,DC=domain,DC=com))

次のコードを実行し、このフィルター(&(objectClass=group)(name=MyGroup))を挿入することで、グループの識別名を取得できます。

    Imports System.DirectoryServices

    Module Module1

        Sub Main()
            Dim run As Boolean = True
            Dim Filter As String
            While run
                Console.WriteLine("Enter Filter:")
                Filter = Console.ReadLine()
                If Filter = "exit" Then
                    run = False
                Else
                    checkFilter(Filter)
                End If
            End While
        End Sub

        Function checkFilter(Filter As String) As Boolean
            Dim search As New DirectorySearcher("LDAP://dc=Domain,dc=com")
            Try
                search.Filter = Filter
                search.PropertiesToLoad.Add("name")
                search.PropertiesToLoad.Add("distinguishedName")
                search.SearchScope = SearchScope.Subtree
                Dim results As SearchResultCollection = search.FindAll()
                If results Is Nothing Then
                    Console.WriteLine("Nothing")
                    Return False
                Else
                    If results.Count() = 0 Then
                        Console.WriteLine("non found")
                    End If
                    Dim result As SearchResult
                    For Each result In results
                        Console.WriteLine(result.Properties("name")(0).ToString())
                        Console.WriteLine(result.Properties("distinguishedName")(0).ToString())
                        'For Each prop In result.Properties("members")
                        '    Console.WriteLine(prop.ToString())
                        'Next
                    Next
                    Console.WriteLine(String.Format("{0} Users Found", results.Count()))
                End If
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
            Return True
        End Function
    End Module
于 2016-02-08T19:27:35.853 に答える
0

このコンポーネントは正しくありません: (&(objectclass=*)(memberof:1.2.840.113556.1.4.1941:=)(cn=gasaxena))

おそらくあなたは次のことを意味しました:

(&(objectclass=*)(memberOf:1.2.840.113556.1.4.1941:=cn=gasaxena,<superior-portion-of-distinguished-name-here>))

于 2012-09-24T10:31:48.467 に答える