Мне нужен метод аутентификации пользователя и проверка, находятся ли они в определенной группе пользователей.Я сделал это, нажав имя пользователя и пароль и загрузив свойство memberOf в экземпляр search.Пример ниже покажет все группы для этого конкретного имени пользователя.Оператор 'catch' будет перехватывать неверное имя пользователя или пароль.
DirectoryEntry entry = new DirectoryEntry("LDAP://xxxxxxxx/OU=xxxxxxx,DC=xxxxxx,DC=xxxxx,DC=xxxxxx", strLdapUserName, strLdapPassword);
try
{
//the object is needed to fire off the ldap connection
object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + strLdapUserName + ")";
search.PropertiesToLoad.Add("memberOf");
SearchResult result = search.FindOne();
string filterAttribute = (String)result.Properties["cn"][0];
foreach(string groupMemberShipName in result.Properties["memberOf"])
{
Console.WriteLine("Member of - {0}", groupMemberShipName);
}
}
catch (Exception ex)
{
//failed to authenticate
throw new Exception(ex.ToString());
}
Надеюсь, это поможет.(Не забудьте сослаться на System.DirectoryServices)