Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как проверить, является ли текущее соединение в TWebBrowser Secure (SSL)

Delphi , Интернет и Сети , Браузер

Как проверить, является ли текущее соединение в TWebBrowser Secure (SSL)

Автор: http://www.swissdelphicenter.ch

// You need a TWebbrowser, a TLabel

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  if Webbrowser1.Oleobject.Document.Location.Protocol = 'https:' then
    label1.Caption := 'Sichere Verbindung'
  else
    label1.Caption := 'Unsichere Verbindung'
end;

Here is the translation of the provided text into Russian:

Приведенный код проверяет, является ли текущая соединение в TWebBrowser защищенным (SSL) или нет, путем исследования протокола, используемого для URL.

Вот что он делает:

  • Он использует событие DocumentComplete контроля TWebBrowser.
  • Когда это событие триггерируется, он получает текущее местоположение документа, отображаемого в настоящее время (свойство Location).
  • Затем он проверяет, является ли протоколом этого местоположения 'https' (который обычно используется для защищенных соединений).

Если протокол 'https', он устанавливает заголовок компонента TLabel на 'Сecure Connection'. В противном случае, он устанавливает его на 'Unsecure Connection'.

Обратите внимание, что это метод только проверяет протокол и не проверяет, является ли SSL-сертификат валидным или нет.

Вот альтернативное решение:

Вы можете использовать метод GetSecurityInfo интерфейса IWebBrowser2, который возвращает структуру securityInfo, содержащую информацию о состоянии безопасности соединения. Вам нужно сначала кастовать объект TWebBrowser в интерфейс IWebBrowser2.

Вот как это можно сделать:

uses
  SHDocVw;

...

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  SecInfo: ISecurityInfo;
begin
  if Supports(WebBrowser1, IWebBrowser2, SecInfo) then
    label1.Caption := 'Сecure Connection' and (SecInfo.get_SslState = SSLSTATE_VALID) or
      'Unsecure Connection';
end;

В этом коде мы сначала проверяем, поддерживает ли объект TWebBrowser интерфейс IWebBrowser2. Если он это делает, мы кастаем его в интерфейс IWebBrowser2 и получаем информацию о безопасности соединения с помощью метода GetSecurityInfo. Затем мы проверяем, является ли состояние SSL валидным (используя константу SSLSTATE_VALID) и устанавливаем заголовок TLabel соответственно.

Обратите внимание, что вам нужно включить unit SHDocVw в ваш список используемых для этого кода, так как он содержит определения интерфейсов, используемых здесь.

Статья описывает способ проверки, является ли текущее соединение в TWebBrowser безопасным (SSL) с помощью свойства Location.Protocol объекта Document.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 16:19:01/0.0037598609924316/0