在 C# 编码环境中使用 WebView2 时禁用 Web 安全

Disabling Of Web Security When Using WebView2 in C# Coding Environment

在Visual Studio C#中使用CEFSharp作为嵌入式WebBrowser时,您需要根据用户要求禁用 Web 安全检查 作为使用此代码的解决方案:

  var cefSettings = new CefSettings();
  cefSettings.CefCommandLineArgs.Add("disable-web-security", "disable-web-security");
  Cef.Initialize(cefSettings);

Microsoft WebView2 是一个新产品,我现在需要在相同的 C# 编码中使用它时执行相同的 禁用网络安全 环境。我已经搜索了很多,但没有可能的解决方案。

有谁知道如何使用 WebView2 设置

提前致谢..

对于 WebView2,您可以使用 CoreWebView2EnvironmentOptions.AdditionalBrowserArguments to set command line parameters for the browser process. These are the same command line parameters that the Edge browser accepts which mostly matches the chromium command line switches,包括 --disable-web-security

如果您使用的是 WPF 或 WinForms WebView2 控件,它将类似于以下内容:

CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("--disable-web-security");
CoreWebView2Environment environment = await CoreWebView2Environment.CreateAsync(null, null, options);
// EnsureCoreWebView2Async must be called before any other call
// to EnsureCoreWebView2Async and before setting the Source property
// since these will both cause initialization of the CoreWebView2 property
// but using a default CoreWebView2Environment rather than your custom one.
await webview2.EnsureCoreWebView2Async(environment);

当然请注意,如果不将 WebView2 中呈现的内容限制为您信任的内容,则不应使用禁用网络安全。禁用网络安全并在 WebView2 中呈现未知内容是危险的。

Windows 形式的代码:

public Form1()
{
   InitializeComponent();
   _ = InitializeAsync();
}
private async Task InitializeAsync()
{
    CoreWebView2EnvironmentOptions options = new CoreWebView2EnvironmentOptions("--allow-insecure-localhost");//--disable-web-security
    CoreWebView2Environment environment = await CoreWebView2Environment.CreateAsync(null, null, options);
    await webView21.EnsureCoreWebView2Async(environment);
    webView21.CoreWebView2.Navigate("https://yourlink.jnlp");
}