Metodo ISSONotification.InitializeAdapter

Inizializza l’adapter di sincronizzazione password nel sistema ENTSSO.

Sintassi

  
HRESULT InitializeAdapter(  
BSTR strAdapterName,  
ULONG lFlags,  
ULONGLONG* hNotifyEvent,  
GUID* guidTrackingId);  

Parametri

bstrAdapterName
[in] Nome univoco dell'adapter.

ulFlags
[in] Combinazione bit per bit dei valori SSO_NOTIFICATION_FLAG .

phNotifyEvent
[out] Nell'output restituito da questo metodo è contenuto un handle di evento creato da PS Helper. Poiché MIDL non supporta il tipo di dati HANDLE, è necessario eseguire il cast del valore restituito su un valore HANDLE. Questo parametro può essere NULL se l'handle di evento non è richiesto dall'adapter.

pguidTrackingId
[out] Nell'output restituito da questo metodo è contenuto l'ID rilevamento generato da ENTSSO. L'ID rilevamento viene utilizzato per attività di controllo. Questo parametro può essere NULL se l'ID rilevamento non è richiesto dall'adapter.

Valore restituito

Questo metodo restituisce un HRESULT che indica se il metodo viene completato in modo corretto. Per ulteriori informazioni, vedere la sezione relativa ai valori di errore.

Valori di errore

Questo metodo restituisce un HRESULT contenente uno dei valori riportati nella tabella seguente.

Valore Descrizione
S_OK L'inizializzazione è stata eseguita correttamente.
S_FALSE L'inizializzazione è stata eseguita correttamente, ma si è trattato di una riconnessione. Per altre informazioni, vedere la sezione Osservazioni.
E_ACCESSDENIED Accesso negato.
ENTSSO_E_NO_SERVER Impossibile contattare il server ENTSSO. Verificare che il servizio ENTSSO sia in esecuzione.

Commenti

Prima di chiamare InitializeAdapter, è necessario immettere il nome dell'adapter pertinente in ENTSSO.

InitializeAdapter deve essere il primo metodo delle chiamate della scheda, perché non è possibile chiamare altri metodi ISSONotification prima di chiamare InitializeAdapter. Non è necessario chiamare di nuovo InitializeAdapter fino a quando non si chiama ShutdownAdapter. Dopo aver arrestato l'adapter, tuttavia, è possibile chiamare InitializeAdapter in qualsiasi momento per riconnettersi.

InitializeAdapter avvia la comunicazione tra l'helper PS e l'adapter. Quando la scheda chiama InitializeAdapter, l'helper PS chiama il servizio Enterprise Single Sign-On (ENTSSO) su LRPC crittografato. Utilizzando il nome dell'adapter, il servizio ENTSSO concede o nega l'accesso in base all'account di accesso definito per l'adapter corrente.

È necessario aver avviato il servizio ENTSSO prima di chiamare InitializeAdapter. PS Helper non può avviare automaticamente ENTSSO perché il processo dell'adapter potrebbe non essere eseguito con privilegi sufficienti per avviare un servizio. Tutte le comunicazioni tra l'adapter e il servizio ENTSSO devono pertanto essere avviate dall'adapter.

PS Helper stabilisce prima una connessione con il servizio ENTSSO, quindi crea un evento con nome. PS Helper passa quindi l'evento con nome al servizio ENTSSO. ENTSSO utilizza l'evento per segnalare a PS Helper l'arrivo di una notifica per l'adapter. ENTSSO restituisce l'evento all'adapter in modo che l'adapter possa rimanere in attesa dell'evento oppure ignorarlo e consentirne l'attesa a PS Helper. Ciò conferisce maggiore flessibilità all'adapter per il modello di threading dell'adapter. L'evento è valido per l'adapter finché ENTSSO non completa l'elaborazione avviata da una chiamata a ShutdownAdapter.

Se è in esecuzione, il servizio ENTSSO accetta la chiamata a procedura remota da PS Helper. ENTSSO esegue quindi un controllo di accesso. Se non è in grado di accedere al database per ottenere le informazioni di configurazione dell'adapter, ENTSSO restituisce un evento E_ACCESSDENIED. Se dispone delle informazioni di configurazione dell'adapter ma non è attualmente in grado di contattare il database, ENTSSO continua ad accettare le notifiche di modifica password, le memorizza localmente nel buffer e ne esegue la crittografia in un file temporaneo locale.

InitializeAdapter restituisce anche E_ACCESSDENIED se l'adattatore viene eliminato o disabilitato.

Per informazioni più dettagliate su qualsiasi errore, consultare il registro eventi di Windows.

Si presuppone che l'adapter conosca il nome appropriato da utilizzare per comunicare con il servizio ENTSSO.

InitializeAdapter è a thread singolo. Tutti gli altri thread che chiamano InitializeAdapter vengono bloccati fino al completamento di InitializeAdapter . Viene sincronizzato anche con il metodo ShutdownAdapter .

È possibile che il processo dell'adattatore venga terminato prima di poter eseguire un shutdownAdapter. In questo caso, e se ENTSSO riceve un altro InitializeAdapter prima che ENTSSO riceva un valore ShutdownAdapter corrispondente, ENTSSO considera la seconda chiamata ShutdownAdapter come riconnessione. In questo caso ENTSSO elimina a rende non valido l'evento esistente e crea quindi un nuovo handle. ENTSSO completa anche eventuali notifiche di ricezione in sospeso per l'handle di eventi precedente con una notifica di arresto.

Nel caso di una riconnessione, viene restituito un nuovo ID di rilevamento dall'oggetto InitializeAdapter. ENTSSO restituisce un nuovo ID di rilevamento perché l'ID di rilevamento restituito da InitializeAdapter può essere considerato un ID sessione. Inoltre, ENTSSO ripubblica le notifiche in sospeso (ma non confermate) all'adapter.

Requisiti

Piattaforme: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11 e Windows 10

Vedere anche

Interfaccia ISSONotification (COM)
Membri ISSONotification
Programmazione con Enterprise Single Sign-On