使用 PowerShell 访问 WebView2 中的 cookie

问题描述

在此处使用工作示例在 PowerShell 中启动 WebView2 实例:WebView2 in PowerShell Winform GUI

我注意到它在会话之间很好地维护了 cookie,就像“普通”Edge 一样。然而,在某些情况下,手动获取和/或设置 cookie 可能很有用。我正在考虑的一个特定场景是使用 WebView2 会话 cookie 创建 WebDAV 连接。

我尝试像这样创建一个 CookieManager

$cookieManager = [Microsoft.Web.WebView2.Core.CoreWebView2CookieManager]

但是 $cookieManager 然后不公开任何设置/获取 cookie 的方法

解决方法

您应该使用 CoreWebView2 的 CookieManager 属性来获取对应 CoreWebView2 的 cookie 管理器。它将影响共享同一用户数据文件夹的所有 CoreWebView2。

$coreWebView2Initialized = {
    # CookieManager only available after the CoreWebView2 property has been initialized. 
    $cookieManager = $webview.CoreWebView2.CookieManager;
    $cookie = $cookieManager.CreateCookie("name","value","example.com","/");
    $cookieManager.AddOrUpdateCookie($cookie);
}

$webview.add_CoreWebView2InitializationCompleted($coreWebView2Initialized);