Vous pouvez référencer mon projet OSS qui repose sur le modèle ActiveRecord comme suit (Parce qu'il est open source, vous pouvez trouver comment utiliser l'AD avec DirectoryEntry, DirectoryEntry ne supporte pas seulement le protocole LDAP mais aussi IIS, WIN et ainsi sur, donc je développe cette lib):
Par exemple: Mettre à jour un objet AD utilisateur.
using (var userObject = UserObject.FindOneByCN(this.ADOperator, “pangxiaoliang”))
{
if(userObject.Email == "[email protected]")
{
userObject.Email = "[email protected]";
userObject.Save();
}
}
Par exemple: interroger des objets AD utilisateur.
// 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);
}
}
Exemple: requête personnalisée.
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
Et vous trouverez facile à utiliser l'AD avec elle, si vous avez aucun intérêt avec elle s'il vous plaît ignorer ma réponse. Toute question sur AD s'il vous plaît contactez-moi :)
Je peux témoigner de 'System.DirectoryServices'! – Sapph
Cela fonctionne très bien, mais il est pénible de travailler directement avec AD. –
+1 pour être la première question que j'ai vu acceptée comme réponse. –