2010-02-17 7 views
3

Кто-нибудь видел какие-либо сплошные библиотеки для работы с активным каталогом (главным образом, с учетом пользователей) на C# и asp.net. Мне лучше вмешаться в членство в Asp или создать что-то настроенное.C# Active Directory Library

Я взглянул на LINQtoAD, но, похоже, он больше не активен.

ответ

12

Недостаточно места сборки и пространства имен System.DirectoryServices?

+0

Я могу поручиться за 'System.DirectoryServices'! – Sapph

+1

Работает очень хорошо, но работать с AD прямо. –

+0

+1 за то, что я первый вопрос, который я видел, воспринимается как ответ. –

6

Если вы на .NET 3.5, а также проверить System.DirectoryServices.AccountManagement гораздо более простой интерфейс, когда речь идет об обработке принципалов - пользователей, групп, компьютеров и т.д.

проверить эту статью MSDN как большое вступление в S .DS.AD:

Managing Directory Security Principals in the .NET Framework 3.5

Ура!

0

Вы можете ссылаться на мой проект OSS, который основывается на шаблоне ActiveRecord следующим образом (поскольку с открытым исходным кодом вы можете узнать, как управлять AD с помощью DirectoryEntry, DirectoryEntry поддерживает не только протокол LDAP, но и IIS, WIN и т. Д. на, поэтому я разворачиваю этот lib):

Например: обновите объект AD пользователя.

using (var userObject = UserObject.FindOneByCN(this.ADOperator, “pangxiaoliang”)) 
{ 
    if(userObject.Email == "[email protected]") 
    { 
      userObject.Email = "[email protected]"; 
      userObject.Save(); 
    } 
} 

Например: запросить пользовательские объекты AD.

// 1. CN end with "liu", Mail conatains "live" (Eg: [email protected]), job title is "Dev" and AD object type is user. 
// 2. CN start with "pang", Mail conatains "live" (Eg: [email protected]), job title is "Dev" and AD object type is user. 
      IFilter filter = 
       new And(
        new IsUser(), 
        new Contains(PersonAttributeNames.Mail, "live"), 
        new Is(PersonAttributeNames.Title, "Dev"), 
        new Or(
          new StartWith(AttributeNames.CN, "pang"), 
          new EndWith(AttributeNames.CN, "liu") 
         ) 
        ); 
// Output the user object display name. 
foreach (var userObject in UserObject.FindAll(this.ADOperator, filter)) 
{ 
    using (userObject) 
    { 
     Console.WriteLine(userObject.DisplayName); 
    } 
} 

Например: Пользовательский запрос.

IFilter filter = 
    new And(
     new IsUser(), 
     new Custom("(!userAccountControl:1.2.840.113556.1.4.803:=2)") 
     ); 
// Output the user object display name. 
foreach (var userObject in UserObject.FindAll(this.ADOperator, filter)) 
{ 
    using (userObject) 
    { 
     Console.WriteLine(userObject.DisplayName); 
    } 
} 

https://landpyactivedirectory.codeplex.com/documentation

И вы найдете легко управлять AD с ним, если вы не имеете никакого интереса с ним, пожалуйста, игнорировать мой ответ. Любой вопрос о AD, пожалуйста, свяжитесь со мной :)

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