WebView2 通过 BasicAuthenticationRequested 暴露代理认证。请在 CoreWebView2 初始化之后、启动需要代理的导航之前注册该处理程序。

webView.CoreWebView2.BasicAuthenticationRequested += (_, e) =>
{
    if (!Uri.TryCreate(e.Uri, UriKind.Absolute, out var challengeUri)
        || !challengeUri.Host.Equals(proxyHost,
            StringComparison.OrdinalIgnoreCase)
        || challengeUri.Port != proxyPort)
    {
        return;
    }

    e.Response.UserName = proxyUser;
    e.Response.Password = proxyPassword;
};

应用程序提供已配置的 proxyHost、proxyPort 和账户值。对于代理质询,事件的 Uri 就是代理服务器的 URI。在选择该账户之前,请先核对预期的端点。

同一事件也可能表示网站认证。如果无条件地在每个事件中填入公司代理密码,就可能把它发送给要求自行登录的网站。

代理端点应另行通过环境的代理配置来选择。该事件只负责应答质询,并不选择网络路由。如果应用程序拒绝认证,可以设置 e.Cancel。否则,不设置凭据将允许 WebView2 显示默认的质询对话框。

相关文章