1

指定された ID の objectClass 名を取得する最良の方法は何ですか。

私の入力は "IDNSKF" のようなものである必要があります。私の出力は、Group、Person、または Computer である必要があります。

次のコードを使用しますが、オブジェクトがグループであってdistinguishedNameも見つからない場合がありますOU=Groups

コード:

DirectoryEntry de = new DirectoryEntry("LDAP://local.be");
        DirectorySearcher searcher = new DirectorySearcher(de);
        searcher.Filter = "(&(cn=variable))";
        searcher.SearchScope = SearchScope.Subtree;
        searcher.PropertiesToLoad.Add("distinguishedName");
        SearchResult result = searcher.FindOne();
        string s = result.GetDirectoryEntry().Properties["distinguishedName"].Value.ToString();
        if (s.IndexOf("OU=Groups") > -1)
            return Groups;
        if (s.IndexOf("OU=Users") > -1)
            return Users;
        if (s.IndexOf("OU=Computers") > -1)
            return Computer;

ありがとう

4

1 に答える 1

1

私が見つけた解決策をあなたと共有したかった:

SearchResult result = directorySearcher.FindOne();
        if (result == null)
            return new LocalPermissionEntry(accessRule);

        ResultPropertyValueCollection userValueCollection = result.Properties["objectClass"];

        // check if the entry is a group or a user.
        if (userValueCollection.Contains("group"))
            return new GroupPermissionEntry(accessRule);
        if (userValueCollection.Contains("person") || userValueCollection.Contains("user"))
            return new UserPermissionEntry(accessRule);

        return new LocalPermissionEntry(accessRule);
于 2013-02-08T14:35:34.393 に答える