在导航之前响应 WebView2 的代理认证质询
先确认是哪个端点发起了请求,再通过 WebView2 的 BasicAuthenticationRequested 事件提供代理凭据。
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 显示默认的质询对话框。