2016-08-12 3 views
0

Wenn ich versuche, die Beschreibung eines Benutzers auf dem Domänencontroller zu aktualisieren, erhalte ich den Fehler UnauthorizedAccessException. Ich habe den Benutzernamen und das Passwort validiert, das ich benutze, ist tatsächlich in der Lage, den Benutzer zu aktualisieren. Ich habe mich als Dienstname und Kennwort angemeldet und die Daten manuell geändert. Hier ist mein Code.ActiveDirectory Aktualisieren eines Benutzers beim Abrufen von UnauthorizedAccessException

private PrincipalContext pc = new PrincipalContext(ContextType.Domain, Common.DCData.serverName, null, ContextOptions.Negotiate, Common.DCData.userName, Common.DCData.password); 

    public bool Save(UserData data) 
    { 
     try 
     { 
      UserPrincipal up = UserPrincipal.FindByIdentity(pc, data.userName); 
      if ((data.DisplayName != null) && (data.DisplayName != "") && (data.DisplayName != up.DisplayName)) 
       up.DisplayName = data.DisplayName; 
      if ((data.givenName != null) && (data.givenName != "") && (data.givenName != up.GivenName)) 
       up.GivenName = data.givenName; 
      if ((data.middleName != null) && (data.middleName != "") && (data.middleName != up.MiddleName)) 
       up.MiddleName = data.middleName; 
      if ((data.surname != null) && (data.surname != "") && (data.surname != up.Surname)) 
       up.Surname = data.surname; 
      if ((data.emailAddress != null) && (data.emailAddress != "") && (data.emailAddress != up.EmailAddress)) 
       up.EmailAddress = data.emailAddress; 
      if ((data.voiceTelephoneNumber != null) && (data.voiceTelephoneNumber != "") && (data.voiceTelephoneNumber != up.VoiceTelephoneNumber)) 
       up.VoiceTelephoneNumber = data.voiceTelephoneNumber; 
      if ((data.description != null) && (data.description != "") && (data.description != up.Description)) 
       up.Description = data.description; 
      up.Save(pc); 

      return true; 
     } 
     catch(Exception ex) 
     { 
      // Some logging goes here 
     } 
    } 

Die Common.DCData ist eine einfache Klasse, die Daten aus einer Datenbank abruft. Ich habe den Benutzernamen und das Passwort in der Datenbank doppelt überprüft

Antwort

0

Die statische Klasse, die ich erstellt habe, um die Daten aus SQL zu ziehen, wurde nicht automatisch instanziiert (wie ich dachte), wenn das statische Element referenziert wird. Am Ende machte ich die Klasse zu einer nicht statischen Klasse und instantiierte die Klasse manuell, bevor ich sie verwendete.

Verwandte Themen