Freigeben über


ISSONotification.InitializeAdapter-Methode

Initialisiert den Kennwortsynchronisierungsadapter für das ENTSSO-System.

Syntax

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

Parameter

bstrAdapterName
[in] Der eindeutige Adaptername.

ulFlags
[in] Eine bitweise Kombination der SSO_NOTIFICATION_FLAG Werte.

phNotifyEvent
[out] Enthält nach dem Beenden dieser Methode ein von PS Helper erstelltes Ereignishandle. Sie sollten den Rückgabewert bei der Rückgabe in einen HANDLE umwandeln, da MIDL den Datentyp HANDLE nicht unterstützt. Dieser Parameter kann NULL sein, wenn der Ereignishandler für den Adapter nicht erforderlich ist.

pguidTrackingId
[out] Enthält beim Beenden der Methode die von ENTSSO generierte Überwachungs-ID. Die Überwachungs-ID wird für Überwachungszwecke verwendet. Der Wert dieses Parameters kann NULL sein, wenn die Überwachungs-ID für den Adapter nicht erforderlich ist.

Rückgabewert

Diese Methode gibt ein HRESULT zurück, durch das angegeben wird, ob die Methode richtig abgeschlossen wurde. Weitere Informationen finden Sie im Abschnitt "Fehlerwerte".

Fehlerwerte

Diese Methode gibt ein HRESULT zurück, das einen der Werte in der folgenden Tabelle enthält.

Wert BESCHREIBUNG
S_OK Die Initialisierung wurde erfolgreich ausgeführt.
S_FALSE Die Initialisierung wurde erfolgreich ausgeführt, die Verbindung musste jedoch erneut hergestellt werden. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
E_ACCESSDENIED Zugriff verweigert.“
ENTSSO_E_NO_SERVER Zum ENTSSO-Server konnte keine Verbindung hergestellt werden. Überprüfen Sie, ob der ENTSSO-Dienst ausgeführt wird.

Hinweise

Vor dem Aufrufen von InitializeAdapter müssen Sie den entsprechenden Adapternamen in ENTSSO eingegeben haben.

InitializeAdapter sollte die erste Methode sein, die ihr Adapter aufruft, da Sie keine anderen ISSONotification-Methoden aufrufen können, bevor Sie InitializeAdapter aufrufen. Sie sollten InitializeAdapter erst wieder aufrufen, nachdem Sie ShutdownAdapter aufgerufen haben. Nach dem Herunterfahren des Adapters können Sie initializeAdapter jedoch jederzeit aufrufen, um die Verbindung wiederherzustellen.

InitializeAdapter initiiert die Kommunikation zwischen dem PS-Hilfsprogramm und dem Adapter. Wenn Ihr Adapter InitializeAdapter aufruft, ruft das PS-Hilfsprogramm den ENTSSO-Dienst (Enterprise Single Sign-On) über verschlüsselten LRPC auf. Der ENTSSO-Dienst gewährt oder verweigert mithilfe des Adapternamens und auf Grundlage des Zugriffskontos, das für den aktuellen Adapter definiert wurde, den Zugriff.

Sie müssen den ENTSSO-Dienst gestartet haben, bevor Sie InitializeAdapter aufrufen. Der ENTSSO-Dienst kann nicht automatisch von PS Helper gestartet werden, da der Adapterprozess möglicherweise nicht über die entsprechenden Berechtigungen zum Starten von Diensten verfügt. Daher muss die Kommunikation zwischen dem ENTSSO-Dienst und dem Adapter durch den Adapter initiiert werden.

PS Helper stellt zuerst eine Verbindung mit dem ENTSSO-Dienst her und erstellt anschließend ein benanntes Ereignis. Dann übergibt PS Helper das benannte Ereignis an den ENTSSO-Dienst. Wenn eine Benachrichtigung für den Adapter empfangen wird, verwendet ENTSSO das Ereignissignal an PS Helper. ENTSSO gibt das Ereignis an den Adapter zurück, sodass der Adapter auf das Ereignis warten oder das Ereignis ignorieren und PS Helper ermöglichen kann, auf das Ereignis zu warten. Dies ermöglicht dem Adapter größere Flexibilität für das Threadingmodell. Das Ereignis ist für den Adapter gültig, bis ENTSSO die Verarbeitung abgeschlossen hat, die durch einen Aufruf von ShutdownAdapter initiiert wurde.

Wenn ENTSSO ausgeführt wird, akzeptiert der Dienst den anfänglichen Remoteprozeduraufruf von PS Helper. Anschließend führt ENTSSO eine Zugriffsüberprüfung durch. Wenn ENTSSO nicht auf die Datenbank zugreifen kann, um die Adapterkonfigurationsinformationen abzurufen, gibt ENTSSO ein E_ACCESSDENIED-Ereignis zurück. Wenn ENTSSO über die Adapterkonfigurationsinformationen verfügt, jedoch zu diesem Zeitpunkt nicht auf die Datenbank zugreifen kann, akzeptiert ENTSSO weiterhin Benachrichtigungen zu Kennwortänderungen und puffert die Benachrichtigungen lokal. Die Benachrichtigungen werden in einer lokalen temporären Datei verschlüsselt gespeichert.

InitializeAdapter gibt auch E_ACCESSDENIED zurück, wenn der Adapter gelöscht oder deaktiviert wird.

Ausführliche Informationen zu sämtlichen Fehlern finden Sie im Windows-Ereignisprotokoll.

Es wird davon ausgegangen, dass der Adapter den entsprechenden Namen für die Kommunikation mit ENTSSO verwendet.

InitializeAdapter ist singlethreaded. Alle anderen Threads, die InitializeAdapter aufrufen, werden blockiert, bis InitializeAdapter abgeschlossen ist. Sie wird auch mit der ShutdownAdapter-Methode synchronisiert.

Es ist möglich, dass der Adapterprozess beendet wird, bevor Sie einen ShutdownAdapter ausstellen können. In diesem Fall und wenn ENTSSO einen weiteren InitializeAdapter empfängt, bevor ENTSSO einen entsprechenden ShutdownAdapter empfängt, behandelt ENTSSO den zweiten ShutdownAdapter-Aufruf als erneute Verbindung. In diesem Fall löscht ENTSSO das vorhandene Ereignis und macht es ungültig. Es wird ein neues Handle erstellt. ENTSSO schließt auch alle ausstehenden ReceiveNotifications für das alte Ereignishandle mit einer Benachrichtigung zum Herunterfahren ab.

Im Falle einer erneuten Verbindung wird eine neue Nachverfolgungs-ID vom InitializeAdapter zurückgegeben. ENTSSO gibt eine neue Nachverfolgungs-ID zurück, da die von InitializeAdapter zurückgegebene Nachverfolgungs-ID als Sitzungs-ID betrachtet werden kann. Darüber hinaus sendet ENTSSO alle ausstehenden (aber nicht bestätigten) Benachrichtigungen erneut an den Adapter.

Anforderungen

Plattformen: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 11 und Windows 10

Weitere Informationen

ISSONotification-Schnittstelle (COM)
ISSONotification-Member
Programmieren mit Einmaligem Anmelden für Unternehmen