Condividi tramite


Selezione oggetto directory

La finestra di dialogo selezione oggetti directory consente a un utente di selezionare uno o più oggetti dal catalogo globale, da un dominio o da un computer o da un gruppo di lavoro. I tipi di oggetto da cui un utente può selezionare includono oggetti utente, contatto, gruppo e computer. Per altre informazioni sui servizi di Dominio di Active Directory, vedere Dominio di Active Directory Services.

Per visualizzare una finestra di dialogo selezione oggetti:

  1. Chiamare la funzione CoCreateInstance o CoCreateInstanceEx per creare un'istanza dell'interfaccia IDsObjectPicker.
  2. Chiamare il metodo IDsObjectPicker::Initialize per inizializzare la finestra di dialogo.
  3. Chiamare il metodo IDsObjectPicker::InvokeDialog per visualizzare la finestra di dialogo.
  4. Chiamare il metodo IDataObject::GetData dell'istanza IDataObject restituita dalla finestra di dialogo selezione oggetti per recuperare i dati CFSTR_DSOP_DS_edizione StandardLECTION_LIST. Il formato degli Appunti CFSTR_DSOP_DS_edizione StandardLECTION_LIST fornisce un oggetto HGLOBAL che contiene una struttura DS_edizione StandardLECTION_LIST. La struttura DS_edizione StandardLECTION_LIST contiene dati sugli elementi selezionati nella finestra di dialogo selezione oggetti.

Se per un oggetto è necessario l'identificatore di sicurezza (SID), è necessario richiederlo direttamente dalla selezione oggetti aggiungendo l'attributo objectSID all'elenco di attributi da recuperare per l'oggetto selezionato. Il passaggio del nome dell'oggetto restituito alla funzione LsaLookupNames o LookupAccountName non è consigliato perché la ricerca del nome sarà ridondante e in alcuni casi potrebbe non riuscire.

Se verrà salvato un riferimento a qualsiasi oggetto selezionato, il nome distinto non deve essere salvato perché l'oggetto può spostarsi, essere rinominato o cambiare a causa delle differenze delle impostazioni locali. Per le entità di sicurezza, l'objectSID deve essere richiesto per l'oggetto e salvato in modo sicuro. Se il nome dell'entità di sicurezza è necessario in un secondo momento, può essere recuperato con la funzione LookupAccountSid. Per tutti gli altri oggetti, è necessario richiedere e salvare objectGUID.

Inizializzazione

Quando viene inizializzata la finestra di dialogo selezione oggetti, viene specificato un set di tipi di ambito e filtri. I tipi di ambito specificati determinano i percorsi, i domini o i computer, ad esempio, da cui un utente può selezionare gli oggetti. I filtri determinano i tipi di oggetti che un utente può selezionare da un determinato tipo di ambito. Per altre informazioni, vedere la sezione Ambiti e filtri di seguito.

Per impostazione predefinita, un utente può selezionare un singolo oggetto nella finestra di dialogo selezione oggetti directory. Per abilitare più selezioni, impostare il flag DSOP_FLAG_MULTIedizione Standard LECT nel membro flOptions della struttura DSOP_INIT_INFO all'inizializzazione della finestra di dialogo.

Ambiti e filtri

L'elenco a discesa Cerca in contiene gli ambiti da cui un utente può selezionare gli oggetti. Un ambito è un dominio, un computer, un gruppo di lavoro o un catalogo globale che archivia i dati e fornisce l'accesso a un set di oggetti disponibili. Le voci nell'elenco di ambiti dipendono dai tipi di ambito e dal computer di destinazione specificato quando il metodo IDsObjectPicker::Initialize è stato chiamato per inizializzare la finestra di dialogo selezione oggetti.

Un tipo di ambito è una categoria generica di ambiti, ad esempio tutti i domini dell'organizzazione a cui appartiene il computer di destinazione o il catalogo globale per l'organizzazione del computer di destinazione o il computer di destinazione stesso. Per ogni tipo di ambito specificato, nella finestra di dialogo viene utilizzato il contesto del computer di destinazione per determinare le voci dell'elenco di ambiti.

Il metodo IDsObjectPicker::Initialize accetta un puntatore a una struttura DSOP_INIT_INFO che contiene una matrice di strutture DSOP_SCOPE_INIT_INFO. Ogni voce nella matrice di DSOP_SCOPE_INIT_INFO specifica uno o più tipi di ambito, nonché filtri applicabili e altri attributi. I filtri determinano i tipi di oggetti, ad esempio utenti, gruppi, contatti e computer, che l'utente può selezionare da un determinato tipo di ambito. Quando l'utente seleziona un ambito dall'elenco, la finestra di dialogo applica i filtri per tale tipo di ambito per visualizzare un elenco di oggetti da cui l'utente può selezionare.

Ogni struttura DSOP_SCOPE_INIT_INFO contiene una struttura DSOP_FILTER_FLAGS che specifica i filtri per tale tipo di ambito. La struttura DSOP_FILTER_FLAGS distingue tra ambiti di livello superiore e inferiore:

  • Un ambito di livello superiore è un catalogo globale o un dominio che supporta il provider LDAP ADSI.
  • Un ambito di livello inferiore include gruppi di lavoro e tutti i singoli computer. La finestra di dialogo usa il provider WINNT ADSI per accedere a un ambito di livello inferiore.

Nella struttura di DSOP_FILTER_FLAGS sono definiti due set di flag di filtro: uno per gli ambiti di livello superiore e uno per gli ambiti di livello inferiore. Il membro Uplevel della struttura DSOP_FILTER_FLAGS è una struttura DSOP_UPLEVEL_FILTER_FLAGS che specifica i filtri per gli ambiti di livello superiore. Il membro flDownlevel della struttura DSOP_FILTER_FLAGS è un set di flag che specificano i filtri per gli ambiti di livello inferiore.