使用 WebView2 编辑 HTTP 请求标头

min*_*_BS 5 .net c# winforms webview2

我正在使用最近针对 .NET 发布的新 WebView2 控件,我需要在导航到站点时向请求标头添加授权值,但我无法找到实现此操作的方法。由于这是一个相对较新的控件,而且我是第一次使用它,因此我也可能完全错过了实际执行此操作的方法。

到目前为止我能找到的唯一信息是在 c++ 文档中找到的:ICoreWebView2HttpRequestHeaders

它特别说

用于检查WebResourceRequested事件和 NavigationStarting 事件上的 HTTP 请求。请注意,您可以从 WebResourceRequested 事件修改HTTP 请求标头,但不能从 NavigationStarting 事件修改 HTTP 请求标头。

此事件在 .NET 中可用,我能够捕获它并查看请求标头,但它们似乎不可编辑,或者至少我试图错误地编辑它们。在我尝试编辑标头后,授权属性仍然为空,并且未随请求传递。

private void CoreWebView2_WebResourceRequested(object sender, Microsoft.Web.WebView2.Core.CoreWebView2WebResourceRequestedEventArgs e)
{
    var authHeaderValue = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "the_token_value");
    e.Request.Headers.Authorization = authHeaderValue;
}
Run Code Online (Sandbox Code Playgroud)

如果有办法设置此值,正确的方法是什么,因为您似乎无法直接修改 eventargs。我也很可能错误地使用了这个事件。

如有任何帮助,我们将不胜感激。

小智 1

这是当前正在处理的 WebView2 上的一个已知错误: https: //github.com/MicrosoftEdge/WebViewFeedback/issues/259

如果您将来发现更多类似的错误,请随时在反馈存储库上提出问题: https: //github.com/MicrosoftEdge/WebViewFeedback/issues

谢谢!