Я проверил this сообщение уже. Но это не отвечает на мой вопрос. Я хочу получить все активные группы каталогов, в которых конкретный пользователь является членом.Как получить все группы AD для определенного пользователя?
Я написал следующий код. Но я не могу двигаться дальше, так как не знаю, как дать фильтр и как получить доступ к свойствам.
class Program
{
static void Main(string[] args)
{
DirectoryEntry de = new DirectoryEntry("LDAP://mydomain.com");
DirectorySearcher searcher = new DirectorySearcher(de);
searcher.Filter = "(&(ObjectClass=group))";
searcher.PropertiesToLoad.Add("distinguishedName");
searcher.PropertiesToLoad.Add("sAMAccountName");
searcher.PropertiesToLoad.Add("name");
searcher.PropertiesToLoad.Add("objectSid");
SearchResultCollection results = searcher.FindAll();
int i = 1;
foreach (SearchResult res in results)
{
Console.WriteLine("Result" + Convert.ToString(i++));
DisplayProperties("distinguishedName", res);
DisplayProperties("sAMAccouontName", res);
DisplayProperties("name", res);
DisplayProperties("objectSid", res);
Console.WriteLine();
}
Console.ReadKey();
}
private static void DisplayProperties(string property, SearchResult res)
{
Console.WriteLine("\t" + property);
ResultPropertyValueCollection col = res.Properties[property];
foreach (object o in col)
{
Console.WriteLine("\t\t" + o.ToString());
}
}
}
Любые идеи?
Оки. Я узнал отсюда: http://www.eggheadcafe.com/software/aspnet/30375857/directory-searcher-not-returning-all-groups.aspx, что memberOf не вернет первичные группы пользователей. Но я могу получить primaryGroupID, который дает RID (?) Группы, с помощью которой мне нужно получить группу AD. Есть идеи, как это сделать? – NLV 2010-12-21 05:32:35
Пожалуйста, проверьте мой новый ответ. Ваш нынешний подход работает не очень хорошо. Если пользователю присвоена универсальная группа в другом лесу, Universal Group не будет отображаться в атрибуте memberOf – 2011-01-07 05:03:57