0

我正在使用以下代码从 LDAP 中的所有组中获取所有用户

        using (SearchResultCollection results = searcher.FindAll())
        {
            foreach (SearchResult result in results)
            {
                 ResultPropertyValueCollection userValueCollection =
                   result.Properties["member"];
                    foreach (var cn in userValueCollection)
                    {
                        System.Console.WriteLine(cn.ToString());
                    }

            }
        }

输出如下:

CN=068IGHf,OU=个人,OU=通用,OU=特权 CN=064IMHf,OU=技术,OU=通用,OU=特权 CN=060IGHJ,OU=功能,OU=通用,OU=特权 CN=061UGHf,OU =Tester,OU=Generic,OU=Privileged

Q1:如何从输出中获取每个用户示例的类型信息:个人、技术、功能?Q2:我怎样才能只得到用户名的例子:068IGHF?

4

1 回答 1

0

不要使用User.ToString()然后期望能够解析结果字符串。

User对象有自己的方法和属性。使用它们。

例如获取通用名称:

 DirectoryEntry user = new DirectoryEntry(result.Properties["member"]);

 group.Users.Add(user.Properties.Item["cn"][0]);
于 2013-01-29T16:41:06.400 回答