Método ISSONotification.InitializeAdapter

Inicializa el adaptador de sincronización de contraseñas para el sistema ENTSSO.

Sintaxis

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

Parámetros

bstrAdapterName
[in] El nombre único del adaptador.

ulFlags
[in] Combinación bit a bit de los SSO_NOTIFICATION_FLAG valores.

phNotifyEvent
[out] Cuando se devuelve este método, contiene un controlador de eventos creado por el asistente de sincronización de contraseñas. Debería convertir el valor devuelto a un HANDLE en la devolución, ya que MIDL no admite el tipo de datos HANDLE. Este parámetro puede ser NULO si el adaptador no necesita el controlador de eventos.

pguidTrackingId
[out] Cuando se devuelve este método, contiene el Id. de seguimiento generado por ENTSSO. El Id. de seguimiento se usa con fines de auditoría. Este parámetro puede ser NULO si el adaptador no necesita el Id. de seguimiento.

Valor devuelto

Este método devuelve un HRESULT que indica si se completó correctamente. Para obtener más información, consulte la sección Valores de error.

Valores de error

Este método devuelve un HRESULT que contiene uno de los valores de la siguiente tabla.

Value Descripción
S_OK La inicialización se completó correctamente.
S_FALSE La inicialización se completó correctamente, pero fue una reconexión. Para obtener más información, vea la sección Comentarios.
E_ACCESSDENIED Deniega el acceso.
ENTSSO_E_NO_SERVER No se pudo establecer conexión con el servidor ENTSSO. Compruebe que el servicio ENTSSO está en ejecución.

Observaciones

Antes de llamar a InitializeAdapter, debe haber escrito el nombre del adaptador pertinente en ENTSSO.

InitializeAdapter debe ser el primer método al que llama el adaptador, ya que no se puede llamar a ningún otro método ISSONotification antes de llamar a InitializeAdapter. No debe volver a llamar a InitializeAdapter hasta después de llamar a ShutdownAdapter. Sin embargo, una vez apagado el adaptador, puede llamar a InitializeAdapter en cualquier momento para volver a conectarse.

InitializeAdapter inicia la comunicación entre el asistente de PS y el adaptador. Cuando el adaptador llama a InitializeAdapter, el asistente de PS llama al Enterprise single Sign-On (ENTSSO) a través de LRPC cifrado. El uso del nombre del adaptador permite al servicio ENTSSO conceder o denegar el acceso según la cuenta de acceso definida para el adaptador actual.

Debe haber iniciado el servicio ENTSSO antes de llamar a InitializeAdapter. El asistente de sincronización de contraseñas no puede iniciar automáticamente ENTSSO, porque es posible que el proceso del adaptador se ejecute sin suficientes privilegios para iniciar un servicio. Por lo tanto, el adaptador debe iniciar todas las comunicaciones entre el adaptador y ENTSSO.

El asistente de sincronización de contraseñas establece en primer lugar una conexión con el servicio ENTSSO y, a continuación, crea un evento con nombre. Posteriormente, pasa el evento con nombre al servicio ENTSSO. ENTSSO usa el evento para indicar al asistente de sincronización de contraseñas la llegada de una notificación para el adaptador. ENTSSO devuelve el evento al adaptador de modo que el adaptador pueda quedar en espera del evento u omitir el evento y permitir que el asistente de sincronización de contraseñas espere en su lugar. Esto proporciona más flexibilidad al adaptador para el modelo de subprocesos de adaptador. El evento es válido para el adaptador hasta que ENTSSO completa el procesamiento iniciado por una llamada a ShutdownAdapter.

El servicio ENTSSO acepta la llamada a procedimiento remoto (RPC) inicial del asistente de sincronización de contraseñas si ENTSSO está en ejecución. A continuación, ENTSSO realiza una comprobación de acceso. Si ENTSSO no puede tener acceso a la base de datos para obtener la información de configuración del adaptador, ENTSSO devuelve un evento E_ACCESSDENIED. En caso de que ENTSSO disponga de la información de configuración del adaptador, pero no pueda ponerse en contacto con la base de datos en ese momento, sigue aceptando notificaciones de cambio de contraseña, almacena en búfer las notificaciones de forma local y cifra las notificaciones en un archivo temporal local.

InitializeAdapter también devuelve E_ACCESSDENIED si el adaptador se elimina o deshabilita.

Hay disponible información más detallada para todos los errores en el registro de eventos de Windows.

Se supone que el adaptador conoce el nombre apropiado que debe usar al comunicarse con ENTSSO.

InitializeAdapter es de un solo subproceso. Todos los demás subprocesos que llaman a InitializeAdapter se bloquean hasta que se completa InitializeAdapter . También se sincroniza con el método ShutdownAdapter .

Es posible que el proceso del adaptador finalice antes de que pueda emitir un ShutdownAdapter. En este caso, y si ENTSSO recibe otro InitializeAdapter antes de que ENTSSO reciba un ShutdownAdapter correspondiente, ENTSSO trata la segunda llamada shutdownAdapter como una reconexión. En tal caso, ENTSSO limpia e invalida el evento existente, y crea un nuevo controlador. ENTSSO también completa las receiveNotifications pendientes para el identificador de evento antiguo con una notificación de apagado.

En el caso de una reconexión, se devuelve un nuevo identificador de seguimiento desde InitializeAdapter. ENTSSO devuelve un nuevo identificador de seguimiento porque el identificador de seguimiento devuelto desde InitializeAdapter se puede considerar un identificador de sesión. Además, ENTSSO reenvía las notificaciones pendientes (pero no confirmadas) al adaptador.

Requisitos

Plataformas: Windows 7, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Vista SP2, Windows Server 2003 R2 SP2

Consulte también

Interfaz ISSONotification
Miembros de ISSONotification
Programación con Enterprise Single Sign-On