【问题标题】:How do I set the cookie on the WebView2 control using the CoreWebView2CookieManager如何使用 CoreWebView2CookieManager 在 WebView2 控件上设置 cookie
【发布时间】:2021-05-10 18:48:50
【问题描述】:

提前致谢。

我正在尝试使用 CoreWebView2CookieManager(来自 WebView2 最新 SDK 1.0.705.50 的 CookieManagement API)在基于 WPF 的 WebView2 浏览器控件上设置 cookie,但未在浏览器上设置 cookie。

这是我在 WPF 应用程序中的一段代码:

private void ButtonNavigateToLocal(object sender, RoutedEventArgs e)
{
   string uri = @"http://www.dnndev.me/";
   var cookie = _webView.CoreWebView2.CookieManager.CreateCookie("TestCookie", "XJKDKD", ".me", null);
   cookie.IsHttpOnly = true;
   cookie.IsSecure = true;                
  _webView.CoreWebView2.CookieManager.AddOrUpdateCookie(cookie);           
  _webView.CoreWebView2.Navigate(uri);

}

只是想知道我在这里是否缺少任何东西?我是否还需要使用 WebResourceRequested 事件来设置 cookie?任何线索或示例将不胜感激。

【问题讨论】:

  • 你怎么知道,没有设置?你是怎么检查的?您确定该域与您的 Source 中的域相同吗?
  • @Poul Bak :是的,我检查了开发工具(应用程序选项卡 -->Cookie 下拉菜单),源和域相同。

标签: c# .net cookies webview2


【解决方案1】:

问题是您将 cookie 域设置为顶级域 .me。这是不合法的,出于安全原因,浏览器不会发送它。

想象一下,如果您将其设置为.com,那么它会将 cookie 发送到世界的一半。所以这是禁止的。

改为将其设置为 .dnndev.me - 然后它将被发送到您的域。

您还设置:cookie.IsSecure = true; - 那么它只会被发送到https 请求。将其设置为 false 以包含 http 请求。

还将path 设置为/ - 然后它将发送到您服务器上的所有路径。

【讨论】:

  • 谢谢,我可以根据您的建议设置 cookie。这是我所做的更改: cookie.path = "/"; (当路径为“/”或 null 或 string.empty 时设置 Cookie),cookie.IsSecure = false; cookie.domain = ".dnndev.me";
猜你喜欢
  • 2021-10-28
  • 2020-10-06
  • 2021-10-01
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 2011-02-19
  • 2011-11-22
  • 2021-08-05
相关资源
最近更新 更多