J'ai le code suivant pour interroger AD en utilisant DirectorySearcher
pour obtenir tous les groupes AD pour un utilisateur.Requête AD pour rechercher tous les groupes d'un utilisateur - Un groupe manquant
List<string> Groups = new List<string>();
//initialize the directory entry object
DirectoryEntry dirEntry = new DirectoryEntry(ldapPath);
//directory searcher
DirectorySearcher dirSearcher = new DirectorySearcher(dirEntry);
//enter the filter
dirSearcher.Filter = string.Format("(&(objectClass=user)(sAMAccountName={0}))", username);
//get the member of properties for the search result
dirSearcher.PropertiesToLoad.Add("memberOf");
int propCount;
SearchResult dirSearchResults = dirSearcher.FindOne();
propCount = dirSearchResults.Properties["memberOf"].Count;
string dn;
int equalsIndex;
int commaIndex;
for (int i = 0; i <= propCount - 1; i++)
{
dn = dirSearchResults.Properties["memberOf"][i].ToString();
equalsIndex = dn.IndexOf("=", 1);
commaIndex = dn.IndexOf(",", 1);
if (equalsIndex == -1)
{
return null;
}
if (!Groups.Contains(dn.Substring((equalsIndex + 1), (commaIndex - equalsIndex) - 1)))
{
Groups.Add(dn.Substring((equalsIndex + 1), (commaIndex - equalsIndex) - 1));
}
}
return Groups;
Mais quand je vérifie l'onglet « memberof » en l'an pour un utilisateur que j'ai un autre groupe « Les utilisateurs de domaine » que je ne reçois pas par ce code.
Des idées? Pourquoi je ne reçois pas les 'Utilisateurs du domaine' dans la collection 'memberof'?
Peut être basé sur le serveur que vous utilisez et sur sa fonction/rôle, voir la section memberOf de cette page http://msdn.microsoft.com/fr-fr/library/ms677943 – curtisk
Okie. J'ai appris d'ici - http://www.eggheadcafe.com/software/aspnet/30375857/directory-searcher-not-returning-all-groups.aspx que memberOf ne retournera pas les groupes primaires d'un utilisateur. Mais je peux obtenir le primaryGroupID qui donne le RID (?) Du groupe en utilisant ce dont j'ai besoin pour obtenir le groupe AD. Des idées comment le faire? – NLV