2013-10-08 4 views
0

привет Я хочу построить LDAP запрос, как я получаю все Пользователями в папке под ... Например:Как я могу получить доступ к папке в Active Directory?

OU=DBG,OU=THINCLIENT,OU=NPS,OU=services,DC=YourDomain,DC=com 

Я хочу, чтобы все пользователи ины эту папку из Active Directory. Для этого у меня есть запрос, но я не знаю, как я получаю пользователей этой папки :(

(&(objectClass=user)(objectCategory=user)(??????)) 

ответ

-1

Попробуйте

(&(objectClass=user)(objectCategory=user)(homeDirectory=*YourFolderName*)) 
+0

не работает:/.... – Tarasov

1

Если вы используете .NET 3.5 или более поздней версии, вы можете использовать PrincipalSearcher и «запрос по образцу» принципал сделать ваш поиск:

// create your domain context 
string container = "OU=DBG,OU=THINCLIENT,OU=NPS,OU=services,DC=YourDomain,DC=com"; 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YourDomain", container)) 
{ 
    // define a "query-by-example" principal - here, we search for UserPrincipal 
    UserPrincipal qbeUser = new UserPrincipal(ctx); 

    // create your principal searcher passing in the QBE principal  
    PrincipalSearcher srch = new PrincipalSearcher(qbeUser); 

    // find all matches 
    foreach(var found in srch.FindAll()) 
    { 
     // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....   
    } 
} 

Если вы еще не - абсолютно прочитать статью Managing Directory Security Principals in the .NET Framework 3.5 MSDN, который показывает хорошо, как сделать наилучшим образом использовать новые функции в System.DirectoryServices.AccountManagement. Или просмотрите пространство имен .

Вам нужно добавить ссылку на System.DirectoryServices.AccountManagement сборки в ваших ссылках, и вы будете нуждаться в строку:

using System.DirectoryServices.AccountManagement; 

в верхней части файл кода для этого работы ,

Вы можете указать любое из свойств на UserPrincipal и использовать их как «запрос по примеру» для вашего PrincipalSearcher.

0

Вы можете использовать пространство имен System.DirectoryServices.

DirectoryEntry scope = new DirectoryEntry("LDAP://OU=DBG,OU=THINCLIENT,OU=NPS,OU=services,DC=YourDomain,DC=com"); 

string filter = "(&(objectClass=user)(objectCategory=user))"; 
string[] attrs = new string[]{"samaccountname","whencreated"}; 
DirectorySearcher searcher = new DirectorySearcher(scope,filter,attrs); 

foreach(SearchResult result in searcher.FindAll()) 
{ 
    //result.Properties["attribute"][0].ToString(); 
} 
Смежные вопросы