클라이언트가 보안 서버에 연결되면, 사용 중인 TLS 버전(TLS 1.2, TLS 1.3 등), 사용된 cipher, 강도 등에 대한 정보를 요청할 수 있습니다.
이 정보에 액세스하려면 SChannel Handler의 GetInfo 함수를 호출하십시오. SChannel Handler가 생성된 후 호출되는 OnSSLAfterCreateHandler 메서드를 사용하여 SSL Handler에 액세스할 수 있습니다. 클라이언트가 서버에 연결된 후 SSL Handler가 할당되어 있으면 GetInfo 함수를 호출하고, 성공하면 연결 데이터를 반환합니다.
usessgcIdSSL, sgcSSL_SChannel_Indy, sgcSSL_SChannel;var SSL: TsgcIdSSLIOHandlerSocketSChannel; oClient := TsgcWebSocketClient.Create(nil); oClient.URL := 'wss://www.esegece.com:2053'; oClient.TLSOptions.Version := tls1_2; oClient.TLSOptions.IOHandler := iohSChannel; oClient.OnSSLAfterCreateHandler := OnSSLAfterCreateHandlerEvent; oClient.OnConnect := OnConnectEvent; oClient.Active := True; procedure OnSSLAfterCreateHandlerEvent(Sender: TObject; aType: TwsSSLHandler; aSSLHandler: TIdSSLIOHandlerSocketBase); begin if aSSLHandler.ClassType = TsgcIdSSLIOHandlerSocketSChannel then SSL := TsgcIdSSLIOHandlerSocketSChannel(aSSLHandler); end; procedure OnConnectEvent(Connection: TsgcWSConnection); var oInfo: TsgcSChannelConnectionInfo; begin if Assigned(SSL) then begin oInfo := SSL.GetInfo; if (oInfo.Protocol != tls1_2) then raise Exception.Create('Client cannot connect using TLS 1.2'); end; end;