2017-09-18 23 views
0

가 나는 C# .NET을을DirectoryServices.DirectoryEntry 차이.

I을 사용하여 Active Directory의 그룹에서 사용자 항목을 제거하기 위해 노력하고있어 DirectoryServices.DirectoryEntry class를 사용하여 제거

DirectoryEntry directoryEntry = new DirectoryEntry(myGroupPath); 
directoryEntry.Properties["member"].Remove(userDistinguishedName); 
directoryEntry.CommitChanges(); 

두 번째 방법

DirectoryEntry directoryEntry = new DirectoryEntry(myGroupPath); 
directoryEntry.Invoke("Remove", userDistinguishedName); 
: 그 일을 두 가지 방법,

첫 번째 방법을 가로 질러왔다

msdn Invoke documentation에 따르면 Invoke는 기본 Active Directory 도메인 서비스 개체에 대한 메서드를 호출합니다. 첫 번째 방법과 다른 점은 무엇입니까?

답변

0

글쎄 나는 내 연구를했고 여기까지 도달했다.

는의가 두 번째 방법

DirectoryEntry.Invoke (methodName로, ADsPath)를 msdn Invoke documentation 이벤트로

가, 호출은 기본 Active Directory 도메인 서비스 객체의 메소드를 호출 시작하자. 디렉토리 서비스

  1. 가 관리 그룹 회원 데이터 : 우리의 경우 우리는 그룹 구성원 인터페이스 IADsGroup

    기본적으로

    , IADsGroup를 호출하고 있습니다. 이 도구를 사용하면 구성원 개체를 가져 와서 해당 개체가 그룹에 속하는지 테스트하고 그룹에 개체를 추가 또는 제거 할 수 있습니다.

  2. IAD를 구현하는 인터페이스입니다. & IDispatch 인터페이스.

    a) IADs : ADSI 개체에 대한 기본 유지 관리 기능을 제공합니다.

    • 기본 개체 기능, 즉 ADSI 개체의 속성 및 메서드를 정의하는 인터페이스입니다. 예 : "Get"은 이름으로 속성 값을 가져 오는 메서드입니다. "클래스"는 객체의 스키마 클래스의 이름을 가져 오는 속성입니다.
    • 개체의 특성을 속성 캐시에로드합니다. 예 : Invoke ("Remove")를 호출 할 때 가장 먼저 캐시에 멤버 특성을로드합니다.
    • 속성 캐시에서 개체의 특성 값에 액세스하고 수정합니다.
    • 변경 사항을 영구 디렉토리 저장소에 적용합니다.

    b) IDispatch : Visual Basic과 같은 자동화 클라이언트에서 액세스 할 수있는 인터페이스입니다. 객체, 메소드 및 속성을 프로그래밍 도구 및 자동화를 지원하는 다른 응용 프로그램에 표시합니다.

3. 그것은 관리하고 directory schema을 연장하는 방법을 제공한다.

ADSI에서 정의한 인터페이스는 공급자의 특정 속성 및 구문을 지원할 수 있습니다. 그러나 공급자는 ADSI 인터페이스 정의를 확장하고 다른 속성을 지원하도록 선택할 수 있습니다. 당신이 광고에 잘 알려진 일반적인 작업을 사용하는 경우

그래서, ADSI 인터페이스는 당신에게 문제를

DirectoryEntry.Properties을 할 수있는 property cache 관리, commit changes에 잊어의 문제 [ "저장 member "] 제거

기본적으로 ADSI interface to retrieve the value of the property을 호출합니다. IADsGroup은 정확히 동일합니다.