J'écris les méthodes suivantes pour ajouter et supprimer des utilisateurs du répertoire actif en C#.Ajout et suppression d'utilisateurs de groupes Active Directory dans .NET
void AddUserToGroup(string userId, string groupName);
void RemoveUserFromGroup(string userId, string groupName);
Comment mieux implémenter ces méthodes?
Voici un code de CodeProject. Je ne peux pas voir où le serveur AD est spécifié dans ces exemples cependant? (est-il implicitement fourni par le framework .NET lors de l'utilisation du protocole LDAP?). Ces exemples méritent-ils d'être suivis?
public void AddToGroup(string userDn, string groupDn)
{
try
{
DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
dirEntry.Properties["member"].Add(userDn);
dirEntry.CommitChanges();
dirEntry.Close();
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
//doSomething with E.Message.ToString();
}
}
public void RemoveUserFromGroup(string userDn, string groupDn)
{
try
{
DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
dirEntry.Properties["member"].Remove(userDn);
dirEntry.CommitChanges();
dirEntry.Close();
}
catch (System.DirectoryServices.DirectoryServicesCOMException E)
{
//doSomething with E.Message.ToString();
}
}
System.DirectorServices.AccountManagement est uniquement disponible dans> = 3.5, plutôt que 3.0 – regex
Ci-dessous le code a travaillé pour moi *** group.Members.Remove (UserPrincipal.FindByIdentity (pc, userId)); *** au lieu de *** "group.Members.Remove (pc, IdentityType.UserPrincipalName, userId) "***. Note: mon identifiant utilisateur est juste "USERNAME" sans ajout de nom de domaine – Rama
Oui, cette surcharge fonctionne aussi, c'est juste un appel supplémentaire dans le service LDAP pour obtenir l'identité de l'utilisateur avant d'envoyer l'appel de suppression. Franchement, il est possible qu'ils soient équivalents en fonction car l'API appelle probablement dans le LDAP pour l'identité basée sur le nom d'utilisateur avant de faire la suppression, aussi. –