Je me suis cogné la tête pendant un bon moment avec ceci et je n'arrive pas à le faire fonctionner. J'ai une requête LDAP Je travaille dans AD Users and Computers mais je ne sais pas comment le faire par programmation en C#.LDAP Requête avec sous-résultat
Voici ma requête LDAP qui fonctionne correctement dans l'outil AD: (memberOf = CN = AccRght, OU = Groupes, OU = P, OU = Serveur, DC = mydomain, DC = com) (objectCategory = user) (objectClass = user) (l = Ville)
J'ai utilisé ce code pour obtenir les comptes d'utilisateurs pour obtenir des membres de CN = AccRght mais je n'arrive pas à limiter les utilisateurs appartenant à une ville spécifique.
public StringCollection GetGroupMembers(string strDomain, string strGroup)
{
StringCollection groupMemebers = new StringCollection();
try
{
DirectoryEntry ent = new DirectoryEntry("LDAP://DC=" + strDomain + ",DC=com");
DirectorySearcher srch = new DirectorySearcher("(CN=" + strGroup + ")");
SearchResultCollection coll = srch.FindAll();
foreach (SearchResult rs in coll)
{
ResultPropertyCollection resultPropColl = rs.Properties;
foreach(Object memberColl in resultPropColl["member"])
{
DirectoryEntry gpMemberEntry = new DirectoryEntry("LDAP://" + memberColl);
System.DirectoryServices.PropertyCollection userProps = gpMemberEntry.Properties;
object obVal = userProps["sAMAccountName"].Value;
if (null != obVal)
{
groupMemebers.Add(obVal.ToString());
}
}
}
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
return groupMemebers;
}
Merci pour toute aide!
Quelle version de .NET utilisez-vous? LDAP peut ne pas être nécessaire, en faveur de l'utilisation de l'espace de noms System.DirectoryServices.AccountManagement. – ProfK
J'utilise .NET 3.5. Je vais jeter un oeil à System.DirectoryServices.AccountManagement, semble intéressant! – StefanE
DirectoryServices.AccountManagement manière plus facile de travailler avec et pour moi beaucoup plus logique. Merci pour le conseil! – StefanE