識別名プロパティを見て、最初の区切りコンマの前にあるものをすべて破棄します。これは、親オブジェクトの識別名になります (ちなみに、これは OU ではない可能性があります。コンテナまたは他のタイプのオブジェクトである可能性があります)。
これは、子の識別名から親の識別名を取得する関数です。エスケープされたコンマを含む識別名の値を処理します。public string GetParent(string sDistinguishedName) { int iPos = sDistinguishedName.IndexOf(',');
if (iPos > 0)
{
while (iPos > -1)
{
//go back from iPos to find all slashes.
int iFound = 0;
for (int iSearch = iPos - 1; iPos >= 0 && sDistinguishedName[iSearch] == '\\'; iSearch--)
{
iFound++;
}
if (iFound % 2 == 0)
{
return sDistinguishedName.Substring(iPos + 1, sDistinguishedName.Length - iPos - 1);
}
else
{
iPos = sDistinguishedName.IndexOf(',', iPos + 1);
}
}
}
return sDistinguishedName;
}