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 =テスター,OU=汎用,OU=特権

Q1: 各ユーザー例のタイプ情報を取得するにはどうすればよいですか: 個人、技術、機能の出力から? Q2: userName のみの例: 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 に答える