TsgcWebSocketClient | SChannel Obtener información de conexión

Una vez que el cliente se ha conectado al servidor seguro, puede solicitar información sobre la versión TLS en uso (TLS 1.2, TLS 1.3, etc.), el cifrado utilizado, la fortaleza y más detalles.

 

Llame a la función GetInfo del controlador SChannel para acceder a esta información. Puede acceder al controlador SSL usando el método OnSSLAfterCreateHandler, que se llama después de crear el controlador SChannel. Una vez que el cliente se conecta al servidor, si el controlador SSL está asignado, llame a la función GetInfo y, si tiene éxito, devolverá los datos de la conexión.

 


uses
  sgcIdSSL, 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;