【问题标题】:Disabling Security in TEdgeBrowser在 TEdgeBrowser 中禁用安全性
【发布时间】:2022-04-27 04:23:48
【问题描述】:

我在 C# 中看到了一些示例,其中人们通过更改 CoreWebView2EnvironmentOptions 在 WebView2 中禁用了安全性(因此用户不必在证书错误上单击继续),但我终生无法弄清楚如何用 Delphi 中的 TEdgeBrowser 组件做同样的事情。有没有人设法在 Delphi 中实现这一点?

编辑:Updated with a C# solution.

 async void InitializeAsync()
        {
            var op = new CoreWebView2EnvironmentOptions("--disable-web-security");
            var env = await CoreWebView2Environment.CreateAsync(null, null, op);
            await webView.EnsureCoreWebView2Async(env);
        }

Another work around in C#:

var result = await webView.CoreWebView2.CallDevToolsProtocolMethodAsync("Security.setIgnoreCertificateErrors", "{\"ignore\": true}"); 

【问题讨论】:

  • 显示您找到的满足您需要的 C# 代码。
  • 新的 WebView4Delphi 项目允许您通过将 GlobalWebView2Loader.DisableWebSecurity 设置为 true 来禁用安全性。您还可以尝试其他属性,例如 GlobalWebView2Loader.AllowInsecureLocalhost。 github.com/salvadordf/WebView4Delphi
  • @Salvador,我从一开始就一直在使用你的 CEF4Delphi,最近为了使用 webview2,我把它换成了 TEdgeBrowser。我迫不及待地想看看你的 WebView4Delphi 和你对 WebView2 有什么,因为你的 CEF4Delphi 是一等的。在看到 WebView4Delphi 之前,我会推荐它,因为我知道你会跟上 WebView2 SDK 的步伐。是的!
  • 我已将问题更新为包含一些 C# 代码。我将查看 WebView4Delphi,看看我是否可以弄清楚它是如何在那里完成的。不幸的是,由于审计原因,我不能直接使用该代码。不过,这看起来是一个很棒的项目。

标签: delphi webview2 tedgebrowser


【解决方案1】:

不幸的是,Delphi 11.1 仍然没有提供控制CoreWebView2EnvironmentOptions 的好方法。

相反,您可以使用WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 环境变量来做到这一点:

SetEnvironmentVariable('WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS',
  '--ignore-certificate-errors');
EdgeBrowser.CreateWebView;

请注意,--disable-web-security 不会删除证书警告,但 --ignore-certificate-errors 可以解决问题。

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2011-02-14
    • 2020-05-03
    • 2023-03-03
    • 2014-07-16
    • 2020-06-11
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多