Я пытаюсь определить, является ли пользователь членом группы или нет в AD. Однако, как представляется, не следующий работать по какой-то причине ...return not break loop (C#)
public bool MemberOf(string sObjectName, string sGroup, bool bIsGroup)
{
DirectoryEntry dEntry = CreateDirectoryEntry();
DirectorySearcher dSearcher = new DirectorySearcher(dEntry);
if (bIsGroup) dSearcher.Filter = "(distinguishedName=" + sObjectName + ")";
else dSearcher.Filter = "(&(sAMAccountName=" + sObjectName + ")(objectClass=user))";
SearchResult sResult = dSearcher.FindOne();
if (sResult != null)
{
foreach (object oGroup in sResult.Properties["MemberOf"])
{
if (oGroup.ToString() == sGroup) return true;
else this.MemberOf(oGroup.ToString(), sGroup, true);
}
}
return false;
}
Другой вариант: http://users.business.uconn.edu/dwick/work/wtf/6-14-2010%201-15-15%20PM.png
Не работает. Это кажется действительно глупым вопросом ... но не должен ли он прерывать цикл на «return true»?
+1 ... хороший улов. –