CEFSharp有2个浏览器实例,需要单独删除cookie

问题描述 投票:0回答:1

我有 2 个 WinForm,每个都有自己的浏览器实例。一切都工作得很好,但我似乎无法弄清楚如何清除所选实例的 cookie,而不是全局的。

设置缓存文件夹

var requestContextSettings1 = new RequestContextSettings
{
    CachePath = System.IO.Path.GetFullPath("DesktopCache") // Path to the cache folder
};
var requestContext1 = new RequestContext(requestContextSettings1);
public void ClearBrowserCache()
{
    var requestContext = Cef.GetGlobalRequestContext();
    if (requestContext != null)
        {
        var cookieManager = requestContext.GetCookieManager(null);
        if (cookieManager != null)
        {
            cookieManager.DeleteCookies("", "", new DeleteCookiesCallback());
        }
    }
}

我知道上面的代码获取了全局请求上下文,我只是给出了一个在全局范围内起作用的示例。

接下来我尝试了类似的事情

var cookieManager = browser.GetCookieManager();
cookieManager.DeleteCookiesAsync();

我什至尝试删除缓存文件夹。删除缓存文件夹似乎并没有清除会话/内存cookie。

再次,似乎已经清除了这两个实例的cookie。我知道这是我所缺少的简单的东西。有人知道这是什么吗?

c# cookies cefsharp
1个回答
0
投票

在我看来,您必须在自己的 AppDomain 中加载每个表单,并使用不同的缓存目录初始化每个实例。 然后您可以分别清除每个实例的缓存。

© www.soinside.com 2019 - 2024. All rights reserved.