CoreWebView2 WebResourceRequested重定向请求Cookie未设置问题咨询
结论
这不是正常行为,WebView2应当支持在同主机的重定向请求的WebResourceRequested事件中修改请求头(包括Cookie)。出现该问题大概率是WebView2版本更新带来的行为变更,或是当前代码逻辑存在疏漏。
问题原因分析
DeleteAllCookies的副作用:每次请求都清空所有Cookie,会打乱WebView2内部的Cookie管理状态,可能导致重定向请求无法正确应用你设置的Cookie头。AddOrUpdateCookie使用不当:如果未正确配置Cookie的Domain、Path等核心属性,WebView2会判定该Cookie不适用于重定向后的URL,不会自动携带。- WebView2版本变更:近期WebView2的更新可能调整了
WebResourceRequested事件对重定向请求的处理逻辑,比如修改请求头的时机、权限规则。
可行解决方案
调整Cookie设置逻辑:
- 移除
DeleteAllCookies()调用,避免清空所有Cookie导致状态混乱。如果需要清理旧Cookie,可针对性删除特定Cookie而非全部。 - 在
WebResourceRequested事件中,对所有请求(包括初始和重定向)强制设置Cookie头:
可通过日志确认重定向请求是否触发了该事件处理逻辑,确保代码执行覆盖所有请求场景。e.Request.Headers.SetHeader("Cookie", cookieshere);
- 移除
正确使用
AddOrUpdateCookie:
若通过CookieManager设置Cookie,需确保参数符合目标网站要求:var cookie = new CoreWebView2Cookie { Name = "你的Cookie名称", Value = "你的Cookie值", Domain = "目标主机域名", // 例如"example.com",必须与重定向URL的主机完全匹配 Path = "/", // 确保覆盖网站所有路径 IsHttpOnly = false, // 根据网站实际Cookie属性调整 IsSecure = false // 根据网站是否使用HTTPS调整 }; wvBrowser.CoreWebView2.CookieManager.AddOrUpdateCookie(cookie);正确配置后,WebView2会自动在同主机的所有请求(包括重定向)中携带该Cookie,无需手动修改请求头。
排查WebView2版本:
确认当前使用的WebView2 Runtime版本,若近期有更新,可尝试回退至之前正常工作的版本,或检查官方版本变更记录排查是否有相关行为调整。
内容的提问来源于stack exchange,提问作者RGG
相关产品推荐
相关产品推荐

