1

ユーザー ディレクトリ (ou=users,ou=system) でユーザーを検索しようとしていますが、結果が得られません。助けてください。以下は、ユーザーディレクトリを検索するための私のコードです

    public void search(String uid) {
    String searchBase = "ou=users,ou=system";

    env.put(Context.INITIAL_CONTEXT_FACTORY,
            "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, url);
    env.put(Context.SECURITY_CREDENTIALS, rootpass);
    DirContext ctx = null;
    try {

![enter image description here][1]      // Create the initial directory context
        ctx = new InitialDirContext(env);

        // Create the search controls
        SearchControls searchCtls = new SearchControls();

        // Specify the search scope
        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        searchCtls.setReturningAttributes(new String[] { "uid", "cn" });

        String searchFilter =" (uid="+uid+") ";//"(objectclass=*)"; //" (uid="+uid+") ";

        // initialize counter to total the results
        int totalResults = 0;

        // Search for objects using the filter
        NamingEnumeration answer = ctx.search(searchBase, searchFilter,
                searchCtls);

        while (answer.hasMore()) {
            SearchResult sr = (SearchResult) answer.next();

            totalResults++;

            System.out.println(">>>" + sr.getName());
            System.out.println(">>>");
        }
    } catch (NamingException e) {
        e.printStackTrace();
    }
}

ここに私のディレクトリ構造があります

4

3 に答える 3

1

このサンプルを見たいと思うかもしれません。

于 2013-05-02T14:11:57.200 に答える
0

ユーザーフォルダーに関する限り、答えは別の投稿にあり ます LDAPディレクトリエントリ in .Net - not working with OU=Users

これはばかげてばかげているように思えるかもしれませんが、Active Directory のデフォルトのツリー設定は OU=Users ,dc=domain,dc=com ではなく、 CN=Users ,dc=domain,dc=com です (CN= は OU= ではないことに注意してください)。ユーザー向け。

于 2014-01-14T03:18:09.450 に答える