Вы можете ссылаться на мой проект 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, пожалуйста, свяжитесь со мной :)
Я могу поручиться за 'System.DirectoryServices'! – Sapph
Работает очень хорошо, но работать с AD прямо. –
+1 за то, что я первый вопрос, который я видел, воспринимается как ответ. –