CEFSharp separate CookieManage

本文关键字:CookieManage separate CEFSharp | 更新日期: 2023-09-27 18:20:17

我试图为每个chrome浏览器实例创建单独的用户会话,但找不到任何相关的示例。目的是为每个浏览器实例单独存储cookie。

有人能给我指正确的方向吗?我会发布相关的代码,但到目前为止,我只有这里的基本示例。

CEFSharp separate CookieManage

CEF3修订版2040增加了对分离浏览器实例(缓存、cookie、,localStorage、访问授权等)。首先,确保您拥有最新的CefSharp(已更新为CEF3.2526.1347)。

然后,正如您在本例中看到的(第135行),在OnContextInitialized中初始化浏览器上下文之后,您就可以设置cookie存储的路径。SetStoragePath的API为:

设置将用于存储cookie数据的目录路径。如果|path|为空,则数据将仅存储在内存中。如果无法访问cookie,则返回false。

因此,您可以尝试使用内存中的cookie,或者为每个实例使用不同的路径。

正如amaitland所说,这是不支持的。

要将代理与CefSharp一起使用,您可以使用此代码,但每个应用程序域只能调用Initialize方法一次。

CefSettings settings = new CefSettings();
if (string.IsNullOrEmpty(proxyAddress) == false)
{
  settings.CefCommandLineArgs.Add("proxy-server", proxyAddress);
}
//validate if the CEF instance was already initialized
if (Cef.IsInitialized == false)
  Cef.Initialize(settings, true, true);
chromeBrowser = new ChromiumWebBrowser(url);

解决方法可以是在不同的应用程序上使用每个WebBrowser实例,并将其作为一个新进程调用。

希望这能帮助