2016-08-12 11 views
0

도메인 컨트롤러에서 사용자 설명을 업데이트하려고하면 UnauthorizedAccessException 오류가 발생합니다. 나는 사용자 이름과 암호가 실제로 사용자를 업데이트 할 수 있는지 확인했습니다. 서비스 사용자 이름과 암호로 로그인하고 수동으로 데이터를 변경합니다. 여기 내 코드가있다.ActiveDirectory 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 
     } 
    } 

Common.DCData는 데이터베이스에서 데이터를 가져 오는 간단한 클래스입니다. 데이터베이스에서 사용자 이름과 암호를 이중으로 확인했습니다.

답변

0

정적 멤버를 참조 할 때 SQL에서 데이터를 가져 오기 위해 만든 정적 클래스가 자동으로 인스턴스화되지 않았습니다. 클래스를 비 정적 클래스로 만들고 클래스를 수동으로 인스턴스화 한 다음 사용합니다.