Delphi 边缘浏览器组件允许不安全的网络

Allow insecure networks for Delphi Edge Browser component

我正在使用 Delphi 11.1 的 Edge 浏览器组件来自动执行导航过程。问题是,在导航过程开始时,我收到消息“您的连接不是私人的”,整个过程停止,直到我按下“高级”按钮和“继续 1xx.xx.xx.xx”按钮(不安全) "!

我不得不提一下,当我通过 Windows Edge 浏览器导航到此 Intranet 站点时,我没有收到该消息,因为我已经上传了该站点的证书并且我还将它添加到例外情况中边缘浏览器。

我认为我必须以某种方式将“InsecurePrivateNetworkRequestsAllowed”属性 设置为 true,但我找不到方法或无法以某种方式将证书上传到 Delphi 的 Edge 浏览器组件。

有什么想法吗? 谢谢。

单击“继续”可以绕过不安全连接警告link。

下面有一个代码示例:

procedure TForm1.EdgeBrowserNavigationCompleted(Sender: TCustomEdgeBrowser;
  IsSuccess: Boolean; WebErrorStatus: TOleEnum);
resourcestring
  scProceed =
    'function run() { ' +
    '  var e = document.getElementById("proceed-link"); ' +
    '  if (e) e.click(); ' +
    '} run();';
begin
  if not IsSuccess and (WebErrorStatus = COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID) then
    EdgeBrowser.ExecuteScript(scProceed);
end;

另一种方法是使用 CoreWebView2EnvironmentOptions.AdditionalBrowserArguments. Some of arguments are documented here 来控制 WebView2 的行为。

目前,Delphi 11.1 不允许您使用一些 component/interface 来管理它们,但是可以在 WebView 初始化之前使用 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 环境变量来设置这些选项:

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetEnvironmentVariable('WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS',
    '--ignore-certificate-errors');
  EdgeBrowser.CreateWebView;
end;

请注意,由于安全问题和关于它的零星辩论,将来可能会删除此选项。