TsgcWebSocketClient | SChannel Bağlantı Bilgisini Al

İstemci güvenli sunucuya bağlandıktan sonra, hangi TLS sürümünün kullanıldığı (TLS 1.2, TLS 1.3, vb.), kullanılan şifre, güç ve daha fazlası hakkında bilgi isteyebilirsiniz.

 

Bu bilgiye erişmek için SChannel İşleyicisinin GetInfo işlevini çağırın. SSL İşleyicisine, SChannel İşleyicisi oluşturulduktan sonra çağrılan OnSSLAfterCreateHandler yöntemini kullanarak erişebilirsiniz. İstemci sunucuya bağlandıktan sonra, SSL İşleyicisi atanmışsa, GetInfo işlevini çağırın ve başarılı olursa, bağlantı verilerini döndürür.

 


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;