1

すべてのグループ、サブグループ、およびユーザーを取得しています

次のコードを使用しています

ResultPropertyValueCollection resultCollection = result.Properties["member"];
                foreach (var oneResult in resultCollection)
                {

                    if (oneResult.ToString().IndexOf("OU=Groups") > -1)
                    {
                        group.SubGroupsNames.Add(GetCN(oneResult.ToString()));
                    }
                    else if (oneResult.ToString().IndexOf("OU=Users") > -1)
                    {
                        group.UsersNames.Add(GetCN(oneResult.ToString()));
                    }
                }
private string GetCN(string line)
    {
        return line.Substring(line.IndexOf("CN=") + 3, line.IndexOf(",") - line.IndexOf("=")-1);
    }

正常に動作しますが、コード品質コントローラーによって制御されるため、それを記述するより良い方法はありますか? それとも大丈夫ですか?

4

1 に答える 1

2

あなたが何をしようとしているのかは完全にはわかりませんが、ここで車輪の再発明が行われていることがわかります.

System.DirectoryServices.AccountManagement、特にGroupPrincipal クラスを見てください。

getMembers()そこには、 (再帰を使用した)などの優れたメソッドIsMemberOf()や、その他の便利なものがたくさんあります。

于 2013-02-06T14:01:49.683 に答える