C # Active Directory библиотека - PullRequest
       22

C # Active Directory библиотека

3 голосов
/ 17 февраля 2010

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

Я посмотрел на LINQtoAD , но, похоже, он больше не активен.

Ответы [ 3 ]

12 голосов
/ 17 февраля 2010

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

6 голосов
/ 17 февраля 2010

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

Прочтите эту статью MSDN как отличное введение в S.DS.AD:

.

Управление принципами безопасности каталогов в .NET Framework 3.5

Ура!

0 голосов
/ 31 октября 2013

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

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

using (var userObject = UserObject.FindOneByCN(this.ADOperator, “pangxiaoliang”))
{
     if(userObject.Email == "example@landpy.com")
     {
          userObject.Email = "mv@live.cn";
          userObject.Save();
     }
}

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

// 1. CN end with "liu", Mail conatains "live" (Eg: mv@live.cn), job title is "Dev" and AD object type is user.
// 2. CN start with "pang", Mail conatains "live" (Eg: mv@live.cn), 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, пожалуйста, свяжитесь со мной:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...