Domanda

Quando provo ad aggiornare il campo Nome (corrisponde alla CN) su UserPrincipal (Principal, davvero), ricevo un errore "Il server non è disposto a elaborare la richiesta" sulla chiamata a userprincipal.save ().

Ho controllato per assicurarmi che non ci sia un altro oggetto nello stesso OU con lo stesso nome (CN).

Il capitale a cui sto operando è la radice del dominio (non esattamente a livello OU in cui esiste l'account utente).

Quale motivo potrebbe esserci per questo errore? È qualcosa che potrebbe essere legato alla politica di sicurezza (anche se sono in grado di aggiornare tutti gli altri campi)?

using (var context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["domain"], ConfigurationManager.AppSettings["rootDN"], ContextOptions.Negotiate, ConfigurationManager.AppSettings["username"], ConfigurationManager.AppSettings["password"])) {
    var user = UserPrincipal.FindByIdentity(context, IdentityType.Sid, "..."); // SID abbreviated

    user.Name = "Name, Test";

    user.Save();
}

L'utente che sto utilizzando per creare PrincipalContext ha i diritti di sicurezza per modificare gli oggetti AD. Se aggiorno qualsiasi altro degli altri campi (cognome ad es. Dato), tutto funziona bene.

MODIFICARE:

Sono stato in grado di realizzare ciò che devo fare (usando ADSI), ma devo eseguire il seguente codice sotto imitalità. Il codice di imitazione è brutto e il codice seguente si stacca dall'altro modo in cui sto aggiornando i dati degli annunci (usando DirectoryServices.AccountManagement), quindi vorrei ottenere una soluzione migliore.

using (var companyOU = new DirectoryEntry("LDAP://" + company.UserAccountOU)) {
    companyOU.Invoke("MoveHere", "LDAP://" + user.DistinguishedName, "cn=Name\, Test");
}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top