Partager via


ISSONotification.InitializeAdapter, méthode

Initialise l'adaptateur de synchronisation du mot de passe sur le système ENTSSO.

Syntaxe

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

Paramètres

bstrAdapterName
[in] Nom unique de l'adaptateur.

ulFlags
[in] Combinaison de bits des valeurs SSO_NOTIFICATION_FLAG .

phNotifyEvent
[out] Lorsque cette méthode est retournée, contient un handle d'événement créé par le Programme d'aide à la synchronisation des mots de passe. Vous devez alors effectuer un cast sur la valeur de retour vers un HANDLE, car MIDL ne prend pas en charge le type de données HANDLE. Ce paramètre peut être NULL si le handle d'événement n'est pas requis par l'adaptateur.

pguidTrackingId
[out] Lorsque cette méthode est retournée, contient l'ID de suivi généré par le service ENTSSO. Cet ID de suivi est utilisé à des fins d'audit. Ce paramètre peut être NULL si l'ID de suivi n'est pas requis par l'adaptateur.

Valeur renvoyée

Cette méthode retourne une valeur HRESULT indiquant si elle s’est terminée correctement. Pour plus d'informations, voir la section Valeurs d'erreur.

Valeurs d'erreur

Cette méthode retourne un HRESULT contenant l’une des valeurs du tableau suivant.

Valeur Description
S_OK L'initialisation a réussi.
S_FALSE L'initialisation a réussi mais était une reconnexion. Pour plus d'informations, consultez la section Notes.
E_ACCESSDENIED L’accès est refusé.
ENTSSO_E_NO_SERVER Impossible de contacter le serveur ENTSSO. Vérifiez que le service ENTSSO est en cours d'exécution.

Remarques

Avant d’appeler InitializeAdapter, vous devez avoir entré le nom de l’adaptateur approprié dans ENTSSO.

InitializeAdapter doit être la première méthode que votre adaptateur appelle, car vous ne pouvez pas appeler d’autres méthodes ISSONotification avant d’appeler InitializeAdapter. Vous ne devez pas appeler à nouveau InitializeAdapter tant qu’après avoir appelé ShutdownAdapter. Toutefois, une fois que vous avez arrêté l’adaptateur, vous pouvez appeler InitializeAdapter à tout moment pour vous reconnecter.

InitializeAdapter lance la communication entre l’assistance PS et l’adaptateur. Lorsque votre adaptateur appelle InitializeAdapter, le PS Helper appelle le service ENTSSO (Enterprise Single Sign-On) via LRPC chiffré. À l'aide du nom de l'adaptateur, le service ENTSSO accorde ou refuse l'accès en fonction du compte d'accès défini pour l'adaptateur.

Vous devez avoir démarré le service ENTSSO avant d’appeler InitializeAdapter. Le Programme d'aide à la synchronisation des mots de passe ne peut pas démarrer automatiquement le service ENTSSO car le processus lié à l'adaptateur peut ne pas disposer des privilèges suffisants pour démarrer un service. Par conséquent, votre adaptateur doit initier toutes les communications entre l'adaptateur et le service ENTSSO.

Le Programme d'aide à la synchronisation des mots de passe commence par établir une connexion avec le service ENTSSO, puis crée un événement nommé. Il transmet ensuite cet événement au service ENTSSO. Le service ENTSSO utilise le signal d'événement vers le Programme d'aide à la synchronisation des mots de passe lorsqu'une notification arrive pour l'adaptateur. Le service ENTSSO retourne l'événement vers l'adaptateur afin que celui-ci puisse attendre l'événement ou l'ignore et permette au Programme d'aide à la synchronisation des mots de passe d'attendre à sa place. Le modèle de thread de l'adaptateur y gagne ainsi en flexibilité. L’événement est valide pour l’adaptateur jusqu’à ce que ENTSSO termine le traitement lancé par un appel à ShutdownAdapter.

Le service ENTSSO accepte l'appel de procédure distante initiale (RPC) du Programme d'aide à la synchronisation des mots de passe si le service ENTSSO est en cours d'exécution. Le service ENTSSO effectue ensuite un contrôle d'accès. Si le service ENTSSO ne parvient pas à accéder à la base de données pour obtenir les informations de configuration de l'adaptateur, le service ENTSSO retourne un événement E_ACCESSDENIED. Si le service ENTSSO accède aux informations de configuration de l'adaptateur, mais ne parvient pas à contacter la base de données, le service ENTSSO continue d'accepter les notifications de changement de mot de passe. Il les place en mémoire tampon locale et les chiffre dans un fichier temporaire local.

InitializeAdapter retourne également E_ACCESSDENIED si l’adaptateur est supprimé ou désactivé.

Pour toutes les erreurs, des informations plus détaillées sont disponibles dans le journal d'événements Windows.

L'on considère que l'adaptateur connaît le nom à utiliser pour communiquer avec le service ENTSSO.

InitializeAdapter est à thread unique. Tous les autres threads appelant InitializeAdapter sont bloqués jusqu’à ce que InitializeAdapter soit terminé. Elle est également synchronisée avec la méthode ShutdownAdapter .

Il est possible que le processus de l’adaptateur se termine avant que vous puissiez émettre un ShutdownAdapter. Dans ce cas, et si ENTSSO reçoit un autre InitializeAdapter avant qu’ENTSSO reçoive un ShutdownAdapter correspondant, ENTSSO traite le deuxième appel ShutdownAdapter comme un reconnexion. Dans ce cas, le service ENTSSO nettoie et invalide l'événement existant, puis crée un nouveau handle. ENTSSO effectue également toutes les notifications ReceiveNotifications en attente pour l’ancien handle d’événement avec une notification d’arrêt.

Dans le cas d’une reconnexion, un nouvel ID de suivi est retourné par InitializeAdapter. ENTSSO retourne un nouvel ID de suivi, car l’ID de suivi retourné par InitializeAdapter peut être considéré comme un ID de session. En outre, l’ENTSSO réexécute toutes les notifications en attente (mais non confirmées) à l’adaptateur.

Configuration requise

Plates-formes: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11 et Windows 10

Voir aussi

ISSONotification, interface (COM)
Membres de ISSONotification
Programmation avec l’authentification unique de l’entreprise