TsgcWebSocketClient | SChannel Obtenir les informations de connexion

Une fois que le client s'est connecté au serveur sécurisé, vous pouvez demander des informations sur la version TLS utilisée (TLS 1.2, TLS 1.3, etc.), le chiffrement utilisé, la robustesse, et plus encore.

 

Appelez la fonction GetInfo du gestionnaire SChannel pour accéder à ces informations. Vous pouvez accéder au gestionnaire SSL en utilisant la méthode OnSSLAfterCreateHandler, qui est appelée après la création du gestionnaire SChannel. Après la connexion du client au serveur, si le gestionnaire SSL est assigné, appelez la fonction GetInfo et si elle réussit, elle retournera les données de connexion.

 


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;