2013-12-13 3 views
-1

Кто-нибудь знает лучший способ поиска одного пользователя в Active Directory с помощью DirectoryServices? У меня есть код, который в настоящее время отображает все под-OU 'по заданному пути LDAP, но теперь я хочу добавить функцию поиска пользователя по пути. Может ли код быть адаптирован для поиска пользователей?ASPX C# Поиск пользователя в Active Directory

Я включил мой код, который содержит список всех пользователей в текущем подразделении:

DirectoryEntry Ldap = new DirectoryEntry("LDAP://" + ouselect.SelectedValue + ";" + LDAPRoot, LDAPUser, LDAPPass); 
DirectorySearcher ad_search = new DirectorySearcher(Ldap); 

ad_search.Filter = "(objectClass=User)"; 
ad_search.SearchScope = SearchScope.Subtree; 
ad_search.PropertiesToLoad.Add("samaccountname"); 

Любой указатель, который любой желающий может предложить будет отлично.

ответ

2

Если вы используете .NET 3.5 и выше, вы должны проверить пространство имен (S.DS.AM). Читайте об этом здесь:

В принципе, вы можете определить контекст домена и легко найти пользователей и/или групп в AD:

// set up domain context 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    // find a user 
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName"); 

    if(user != null) 
    { 
     // do something here....  
    } 
} 

новый S.DS.AM позволяет очень легко играть с пользователями и группами в AD!

PS: PrincipalContext имеет несколько разных перегрузок для своего конструктора - вы также можете определить имя пользователя/пароль для использования в Active Directory, а также можете указать «начальный» контейнер, если вам нужно. Check out the MSDN documentation for details on this.

0

Ваш код почти у вас. Просто измените свой фильтр, чтобы найти конкретный атрибут AD, а не всех пользователей.

ad_search.Filter = string.Format("(department={0})", department);

ad_search.Filter = string.Format("(displayName={0})", "James Doe");

ad_search.Filter = string.Format("(sAMAccountName={0})", "some.username");

+1

Вы все еще хотите включить в базу объектный компонент фильтра. –

Смежные вопросы