J'essaie de modifier certaines propriétés pour les utilisateurs de notre répertoire actif. Certaines propriétés que je peux changer et d'autres que je ne peux pas. Je fais l'emprunt d'identité, mais pour certaines propriétés, je reçois toujours l'erreur "General Access denied error" lorsque j'essaie d'appeler CommitChanges().Modification des propriétés Active Directory
Par exemple, cela fonctionnera:
DirectoryEntry deUser = new DirectoryEntry(result.Path);
if (ImpersonateValidUser(adConnectionUsername, adConnectionDomain, adConnectionPassword))
{
deUser.Properties["ampPasswordQuestion"].Value = newPasswordQuestion;
deUser.Properties["ampPasswordAnswer"].Value = newPasswordAnswer;
deUser.CommitChanges();
deUser.Close();
UndoImpersonation();
}
Cela fonctionne probablement parce que nous avons ajouté manuellement les propriétés dans le schéma AD sans restriction d'accès. (Voir ASP.NET 3.5 Sécurité, adhésion et la gestion Rôle avec C# et VB)
Toutefois, si je tente de modifier quelque chose comme la propriété Commentaire d'un dossier comme suit:
DirectoryEntry deUser = new DirectoryEntry(result.Path);
if (ImpersonateValidUser(adConnectionUsername, adConnectionDomain, adConnectionPassword))
{
deUser.Properties["comment"].Value = comment;
deUser.CommitChanges();
deUser.Close();
UndoImpersonation();
}
Je obtiendra "Erreur accès général refusé".
Vous avez des idées?
Le code Impersionation est de Microsoft à l'adresse: http://support.microsoft.com/kb/306158
Merci, sauvé ma journée ;-) – Gorgsenegger