You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CoreWebView2 WebResourceRequested重定向请求Cookie未设置问题咨询

WebView2重定向请求Cookie未设置问题解答

结论

这不是正常行为,WebView2应当支持在同主机的重定向请求的WebResourceRequested事件中修改请求头(包括Cookie)。出现该问题大概率是WebView2版本更新带来的行为变更,或是当前代码逻辑存在疏漏。

问题原因分析

  1. DeleteAllCookies的副作用:每次请求都清空所有Cookie,会打乱WebView2内部的Cookie管理状态,可能导致重定向请求无法正确应用你设置的Cookie头。
  2. AddOrUpdateCookie使用不当:如果未正确配置Cookie的Domain、Path等核心属性,WebView2会判定该Cookie不适用于重定向后的URL,不会自动携带。
  3. WebView2版本变更:近期WebView2的更新可能调整了WebResourceRequested事件对重定向请求的处理逻辑,比如修改请求头的时机、权限规则。

可行解决方案

  • 调整Cookie设置逻辑:

    1. 移除DeleteAllCookies()调用,避免清空所有Cookie导致状态混乱。如果需要清理旧Cookie,可针对性删除特定Cookie而非全部。
    2. 在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:45:45