Pour récupérer des données à partir ActiveDirectory j'ai utilisé le code suivant:Comment modifier les attributs de l'utilisateur (avec les ressources humaines nécessaires) dans ActiveDirectory à partir de SharePoint 2010?
SPSecurity.RunWithElevatedPrivileges(delegate()
(
var currentDirectory = new DirectoryEntry(domainAddress);
));
Mais changer la valeur d'une propriété et tenter de mettre à jour les valeurs dans ActiveDirectory (fonction CommitChanges()
) génère System.UnauthorizedAccessException Message = Access is denid
, car l'exécution de code exécuté sous la NetworkService compte. J'ai essayé d'utiliser le code suivant pour exécuter de l'utilisateur actuel:
using (WindowsIdentity.GetCurrent().Impersonate())
{
DirectoryEntry entry = new DirectoryEntry(domainAddress);
...
}
Pour exécuter le code de l'utilisateur actuel, mais l'utilisation continue est générée DirectoryServicesCOMException, alors que l'authentification des utilisateurs est un protocole NTLM. Demander s'il vous plaît, comment est-il possible de changer les attributs des utilisateurs dans ActiveDirectory de l'utilisateur actuel sans nécessiter de mot de passe?