관리 알림 처리기
Microsoft Active Directory 사용자 및 컴퓨터 MMC 스냅인은 사용자가 스냅인을 사용하여 개체의 속성을 삭제, 이름 바꾸기, 이동 또는 변경할 때 구성 요소가 알림을 받을 수 있도록 하는 메커니즘을 제공합니다. 알림을 받는 구성 요소를 "알림 처리기"라고 합니다.
이는 여러 개체가 함께 연결되어 있고 동일한 컨테이너 내에 있어야 하는 경우에 유용합니다. 연결된 개체 중 하나가 이동되면 알림 처리기에 알림이 제공되고 알림 처리기는 다른 연결된 개체를 동일한 폴더로 이동할 수 있습니다.
작업 중 하나가 수행되고 하나 이상의 알림 처리기가 설치되면 사용자 및 컴퓨터 스냅인은 알림 처리기를 나열하는 확인 대화 상자와 각 처리기에 대한 확인란을 표시합니다. 처리기의 확인란을 선택하면 처리기에 알림이 표시됩니다. 확인란을 선택하지 않으면 처리기에 알림이 표시되지 않습니다.
알림 처리기 구현
알림 처리기는 in-proc 서버로 구현된 COM 개체입니다. 알림 처리기는 IDsAdminNotifyHandler 인터페이스를 구현해야 합니다.
알림을 발생시키는 이벤트가 발생하면 사용자 및 컴퓨터 스냅인은 등록된 알림 처리기를 열거하고 처리기에 CLSID를 사용하여 각 알림 처리기를 만듭니다. 처리기를 만든 후 스냅인은 IDsAdminNotifyHandler::Initialize 메서드를 호출합니다 . Initialize 메서드는 처리기가 수신해야 하는 이벤트와 함께 스냅인을 제공합니다.
이벤트가 알림 처리기로 전송되어야 하는 이벤트인 경우 스냅인은 IDsAdminNotifyHandler::Begin 메서드를 호출합니다. Begin 메서드는 이벤트가 발생하는 처리기, 이벤트가 발생하는 개체에 대한 데이터 및 이벤트에 따라 개체가 될 대상에 대한 데이터를 제공합니다. Begin 메서드는 확인 대화 상자에서 처리기에 대해 표시해야 하는 텍스트와 함께 스냅인을 제공합니다.
각 처리기에 대한 Begin 메서드가 호출되면 스냅인에 확인 대화 상자가 표시됩니다. 확인 대화 상자는 사용자에게 알림을 받을 처리기를 선택하라는 메시지를 표시합니다. 사용자가 확인 대화 상자 에서 누름 단추를 누르면 처리기에 알림이 표시되지 않습니다. 사용자가 예 푸시 단추를 누르면 확인 대화 상자에서 선택한 각 처리기가 알림을 받습니다. 스냅인은 IDsAdminNotifyHandler::Notify 메서드를 호출하여 처리기에 알림을 보냅니다.
모든 처리기에 알림이 표시되면 스냅인은 IDsAdminNotifyHandler::End 메서드를 호출합니다. Notify 메서드가 호출되지 않더라도 End 메서드는 항상 호출됩니다.
Windows 레지스트리에 알림 처리기 등록
모든 COM 서버와 마찬가지로 Windows 레지스트리에 알림 처리기를 등록해야 합니다. 처리기는 다음 키 아래에 등록됩니다.
HKEY_CLASSES_ROOT - CLSID - <CLSID>
<CLSID> 는 StringFromCLSID 함수에 의해 생성된 CLSID의 문자열 표현입니다. <CLSID> 키 아래에는 개체를 32비트 in-proc 서버로 식별하는 InProcServer32 키가 있습니다. InProcServer32 키 아래에 DLL의 위치가 기본값으로 지정되고 스레딩 모델이 ThreadingModel 값에 지정됩니다. 모든 알림 처리기는 아파트 스레딩 모델을 사용해야 합니다.
Active Directory 서버에 알림 처리기 등록
Active Directory Domain Services 내에서 알림 처리기 등록은 하나의 로캘과 관련이 있습니다. 알림 처리기가 모든 로캘에 적용되는 경우 DisplaySpecifiers 컨테이너의 모든 로캘 하위 컨테이너에 있는 displaySpecifier 개체에 등록되어야 합니다. 알림 처리기가 특정 로캘에 대해 지역화된 경우 해당 로캘의 하위 컨테이너에 있는 displaySpecifier 개체에 등록됩니다. DisplaySpecifiers 컨테이너 및 로캘에 대한 자세한 내용은 표시 지정자 및 DisplaySpecifiers 컨테이너를 참조하세요.
알림 처리기는 DS-UI-Default-Settings 컨테이너의 dsUIAdminNotification 특성에 등록됩니다. 각 값에 다음 형식이 필요한 다중값 유니코드 문자열 값입니다.
<order number>,<CLSID>
"<주문 번호>"는 확인 대화 상자에서 처리기의 위치를 나타내는 부호 없는 숫자입니다. 확인 대화 상자가 표시되면 각 값의 "<주문 번호>"를 비교하여 값이 정렬됩니다. 둘 이상의 값에 동일한 "<주문 번호>"가 있는 경우 해당 처리기는 Active Directory 서버에서 읽은 순서대로 표시됩니다. 존재하지 않는 즉, 속성의 다른 값에서 사용되지 않는 "<주문 번호>"를 사용해야 합니다(가능한 경우). 정해진 시작 위치가 없으며 간격이 "<주문 번호>" 시퀀스에 표시될 수 있습니다.
"<CLSID>"는 StringFromCLSID 함수에서 생성된 CLSID의 문자열 표현입니다.