ISSONotification.InitializeAdapter 메서드

 

ENTSSO 시스템으로 암호 동기화 어댑터를 초기화합니다.

구문

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

매개 변수

bstrAdapterName
[in] 고유한 어댑터 이름입니다.

ulFlags
[in] SSO_NOTIFICATION_FLAG 값의 비트 조합입니다.

phNotifyEvent
[out] 이 메서드가 반환되면 PS 도우미에서 생성된 이벤트 핸들을 포함합니다. MIDL은 핸들 데이터 유형을 지원하지 않으므로 반환 시 핸들로 반환 값을 캐스팅해야 합니다. 어댑터에 이벤트 핸들러가 필요하지 않은 경우 이 매개 변수는 NULL이 될 수 있습니다.

pguidTrackingId
[out] 이 메서드가 반환되면 ENTSSO에서 생성된 추적 ID를 포함합니다. 추적 ID는 감사 용도로 사용됩니다. 어댑터에 추적 ID가 필요하지 않은 경우 이 매개 변수는 NULL이 될 수 있습니다.

반환 값

이 메서드는 메서드가 올바르게 완료되었는지 여부를 나타내는 HRESULT를 반환합니다. 자세한 내용은 오류 값 섹션을 참조하십시오.

오류 값

이 메서드는 다음 표에 있는 값 중 하나를 포함하는 HRESULT를 반환합니다.

설명
S_OK 초기화에 성공했습니다.
S_FALSE 초기화에 성공했지만 다시 연결한 결과입니다. 자세한 내용은 주의 섹션을 참조하세요.
E_ACCESSDENIED 액세스가 거부되었습니다.
ENTSSO_E_NO_SERVER ENTSSO 서버에 연결하지 못했습니다. ENTSSO 서비스가 실행 중인지 확인하십시오.

설명

InitializeAdapter를 호출하기 전에 관련 어댑터 이름을 ENTSSO에 입력해야 합니다.

InitializeAdapter는 InitializeAdapter 를 호출하기 전에 다른 ISSONotification 메서드를 호출할 수 없으므로 어댑 터가 호출하는 첫 번째 메서드여야 합니다. ShutdownAdapter를 호출할 때까지 InitializeAdapter 다시 호출하면 안 됩니다. 그러나 어댑터를 종료하면 언제든지 InitializeAdapter 를 호출하여 다시 연결할 수 있습니다.

InitializeAdapter 는 PS 도우미와 어댑터 간의 통신을 시작합니다. 어댑터가 InitializeAdapter를 호출하면 PS 도우미는 암호화된 LRPC를 통해 ENTSSO(Enterprise Single Sign-On) 서비스를 호출합니다. ENTSSO 서비스는 어댑터 이름을 사용하여 현재 어댑터에 대해 정의된 액세스 계정을 기준으로 액세스를 허용하거나 거부합니다.

InitializeAdapter를 호출하기 전에 ENTSSO 서비스를 시작해야 합니다. 실행 중인 어댑터 프로세스에 서비스를 시작할 수 있는 권한이 없을 수 있으므로 PS 도우미가 ENTSSO를 자동으로 시작할 수 없습니다. 따라서 어댑터가 어댑터와 ENTSSO 간의 모든 통신을 시작해야 합니다.

PS 도우미는 먼저 ENTSSO 서비스와의 연결을 설정한 다음 명명된 이벤트를 만듭니다. 그런 다음 명명된 이벤트를 ENTSSO 서비스에 전달합니다. ENTSSO가 이벤트 신호를 사용하여 PS 도우미에게 어댑터에 대한 알림이 도착했음을 알립니다. 그런 다음 ENTSSO는 어댑터가 이벤트를 기다릴 수 있도록 이벤트를 어댑터에 반환하거나 PS 도우미가 대신 기다리도록 이벤트를 무시합니다. 이를 통해 어댑터 스레딩 모델이 한층 유연해집니다. 이벤트는 ENTSSO가 ShutdownAdapter 호출로 시작된 처리를 완료할 때까지 어댑터에 유효합니다.

ENTSSO가 실행 중인 경우 ENTSSO 서비스는 PS 도우미로부터 초기 RPC(원격 프로시저 호출)를 수락합니다. 그런 다음 ENTSSO가 액세스 검사를 수행합니다. 데이터베이스에 액세스하여 어댑터 구성 정보를 가져올 수 없는 경우 ENTSSO는 E_ACCESSDENIED 이벤트를 반환합니다. ENTSSO에 어댑터 구성 정보가 있지만 현재 데이터베이스에 연결할 수 없는 경우 ENTSSO는 암호 변경 알림을 수락하고 알림을 로컬에 버퍼링한 다음 로컬 임시 파일에 알림을 암호화합니다.

또한 InitializeAdapter는 어댑터가 삭제되거나 비활성화된 경우 E_ACCESSDENIED 반환합니다.

모든 오류에 대한 자세한 내용은 Windows 이벤트 로그를 참조하십시오.

여기에서는 어댑터가 ENTSSO와의 통신에 사용할 올바른 이름을 알고 있다고 가정합니다.

InitializeAdapter 는 단일 스레드입니다. InitializeAdapter를 호출하는 다른 모든 스레드는 InitializeAdapter가 완료될 때까지 차단됩니다. 또한 ShutdownAdapter 메서드와 동기화됩니다.

ShutdownAdapter를 실행하기 전에 어댑터 프로세스가 종료 될 수 있습니다. 이 경우 ENTSSO가 해당 ShutdownAdapter를 받기 전에 ENTSSO가 다른 InitializeAdapter를 수신하는 경우 ENTSSO는 두 번째 ShutdownAdapter 호출을 다시 연결로 처리합니다. 이 경우 ENTSSO는 기존 이벤트를 삭제 및 무효화한 다음 새 핸들을 만듭니다. 또한 ENTSSO는 종료 알림을 사용하여 이전 이벤트 핸들에 대해 보류 중인 ReceiveNotifications 를 완료합니다.

다시 연결하는 경우 InitializeAdapter에서 새 추적 ID가 반환됩니다. InitializeAdapter에서 반환된 추적 ID를 세션 ID로 간주할 수 있으므로 ENTSSO는 새 추적 ID를 반환합니다. 또한 ENTSSO는 보류 중인(확인되지 않은) 알림을 어댑터에 다시 제공합니다.

요구 사항

플랫폼: Windows

참고 항목

ISSONotification 인터페이스(COM)
ISSONotification 멤버
Enterprise Single Sign-On으로 프로그래밍