问题描述
提前致谢。
我正在尝试使用 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 吗?任何线索或示例将不胜感激。
解决方法
问题在于您将 cookie 域设置为顶级域 .me
。这是不合法的,出于安全原因,浏览器不会发送它。
想象一下,如果您将其设置为 .com
,那么它会将 cookie 发送到半个世界。所以这是被禁止的。
而是将其设置为 .dnndev.me
- 然后它将被发送到您的域。
您还设置了:cookie.IsSecure = true;
- 那么它只会发送到 https
请求。将其设置为 false
以包含 http
请求。
同时将 path
设置为 /
- 然后它将被发送到您服务器上的所有路径。