1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| // Une petite fonction vraiment basique qui suppose que tous tes users sont dans la même branche
private static DirectoryEntry getUserByCN(string userCn) {
List<DirectoryEntry> directoryEntries = null;
// Tu pars de la base de tes users et tu t'authentifies
using (DirectoryEntry baseEntry = new DirectoryEntry("LDAP://DC=eu,DC=xx,DC=com:389/OU=Users,OU=xxx,DC=eu,DC=xx,DC=com", @"userDomain\userLogin", "userPassword", AuthenticationTypes.None)) {
using (DirectorySearcher searcher = new DirectorySearcher(baseEntry, string.Format(CultureInfo.InvariantCulture, "(&(objectClass=user)(cn={0}))", userCn), null, SearchScope.Subtree)) {
using (SearchResultCollection searchResults = searcher.FindAll()) {
if (searchResults == null || searchResults.Count <= 0) {
return null;
}
directoryEntries = new List<DirectoryEntry>();
foreach (SearchResult result in searchResults) {
directoryEntries.Add(result.GetDirectoryEntry());
}
return directoryEntries[0];
}
}
}
}
// Après pour l'utiliser (ex. getUserByCN("Nom\, Prénom"));
DirectoryEntry user = getUserByCN("le CN du member que tu as récupéré dans ton groupe");
// Tester quand même si user.Properties["sAMAccountName"] n'est pas null, ensuite même user.Properties["sAMAccountName"].Value (pas très utile certes)
string sAMAccountName = user.Properties["sAMAccountName"].Value.ToString(); |
Partager