gestori di notifica Amministrazione istrative
Lo snap-in MMC di Microsoft Utenti e computer di Active Directory fornisce un meccanismo per consentire ai componenti di ricevere notifiche quando l'utente elimina, rinomina, sposta o modifica le proprietà di un oggetto usando lo snap-in. Il componente che riceve le notifiche è noto come "gestore di notifica".
Ciò è utile quando più oggetti sono collegati insieme e devono esistere all'interno dello stesso contenitore. Se uno degli oggetti collegati viene spostato, viene fornita una notifica al gestore di notifica e il gestore di notifica può spostare gli altri oggetti collegati nella stessa cartella.
Quando viene eseguita una delle operazioni e viene installato uno o più gestori di notifica, lo snap-in Utenti e computer visualizzerà una finestra di dialogo di conferma che elenca i gestori di notifica e una casella di controllo per ogni gestore. Se è selezionata la casella di controllo per un gestore, il gestore riceve una notifica. Se la casella di controllo non è selezionata, il gestore non riceve una notifica.
Implementazione di un gestore di notifica
Un gestore di notifica è un oggetto COM implementato come server in-proc. Il gestore delle notifiche deve implementare l'interfaccia ID Amministrazione NotifyHandler.
Quando si verifica un evento che causerà una notifica, lo snap-in Utenti e computer enumera i gestori di notifica registrati e crea ognuno di essi usando CLSID per il gestore. Dopo aver creato il gestore, lo snap-in chiama il metodo ID Amministrazione NotifyHandler::Initialize. Il metodo Initialize fornisce lo snap-in con gli eventi che il gestore deve ricevere.
Se l'evento è uno che deve essere inviato al gestore di notifica, lo snap-in chiama il metodo ID Amministrazione NotifyHandler::Begin. Il metodo Begin fornisce al gestore l'evento che si verifica, i dati sull'oggetto su cui si sta verificando l'evento e, a seconda dell'evento, i dati su ciò che diventerà l'oggetto. Il metodo Begin fornisce inoltre lo snap-in con il testo che deve essere visualizzato per il gestore nella finestra di dialogo di conferma.
Quando è stato chiamato il metodo Begin per ogni gestore, lo snap-in visualizza la finestra di dialogo di conferma. La finestra di dialogo di conferma richiede all'utente di selezionare i gestori che riceveranno la notifica. Se l'utente preme il pulsante No push nella finestra di dialogo di conferma, nessuno dei gestori riceve una notifica. Se l'utente preme il pulsante di pressione Sì , ognuno dei gestori selezionati nella finestra di dialogo di conferma riceve la notifica. Lo snap-in invia la notifica al gestore chiamando il metodo ID Amministrazione NotifyHandler::Notify.
Dopo che tutti i gestori sono stati informati, lo snap-in chiama gli ID Amministrazione NotifyHandler::End metodo. Il metodo End viene sempre chiamato, anche se il metodo Notify non viene chiamato.
Registrazione di un gestore di notifica nel Registro di sistema di Windows
Come tutti i server COM, un gestore di notifica deve essere registrato nel Registro di sistema di Windows. Il gestore viene registrato con la chiave seguente:
HKEY_CLASSES_ROOT - CLSID - <CLSID>
<CLSID> è la rappresentazione di stringa del CLSID come prodotto dalla funzione StringFromCLSID . <Nella chiave CLSID> è presente una chiave InProcServer32 che identifica l'oggetto come server in-proc a 32 bit. Sotto la chiave InProcServer32 , il percorso della DLL viene specificato nel valore predefinito e il modello di threading viene specificato nel valore ThreadingModel . Tutti i gestori di notifica devono usare il modello di threading Apartment .
Registrazione di un gestore di notifica con un server Active Directory
All'interno di Dominio di Active Directory Services, la registrazione del gestore delle notifiche è specifica di una sola impostazione locale. Se il gestore di notifica si applica a tutte le impostazioni locali, deve essere registrato nell'oggetto displaySpecifier in tutti i sottocontenitori delle impostazioni locali nel contenitore DisplaySpecifiers. Se il gestore di notifica viene localizzato per determinate impostazioni locali, viene registrato nell'oggetto displaySpecifier nel sottocontenitore delle impostazioni locali. Per altre informazioni sul contenitore e le impostazioni locali DisplaySpecifiers, vedere Display Specifiers e DisplaySpecifiers Container.
I gestori di notifica vengono registrati nell'attributo dsUI Amministrazione Notification nel contenitore DS-UI-Default-Impostazioni. Si tratta di un valore stringa Unicode multivalore in cui ogni valore richiede il formato seguente:
<order number>,<CLSID>
Il "<numero> ordine" è un numero senza segno che rappresenta la posizione del gestore nella finestra di dialogo di conferma. Quando viene visualizzata la finestra di dialogo di conferma, i valori vengono ordinati usando un confronto del "<numero> di ordine" di ogni valore. Se più valori hanno lo stesso "<numero> di ordine", tali gestori vengono visualizzati nell'ordine in cui vengono letti dal server Active Directory. Un valore non esistente, ovvero uno non utilizzato da altri valori nella proprietà , è consigliabile usare "<numero> ordine" se possibile. Non esiste una posizione iniziale prestabilita e le lacune possono essere visualizzate nella sequenza "<numero> ordine".
"CLSID" è la rappresentazione di stringa del CLSID come prodotto dalla funzione StringFromCLSID.><