我有 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。我知道这是我所缺少的简单的东西。有人知道这是什么吗?
在我看来,您必须在自己的 AppDomain 中加载每个表单,并使用不同的缓存目录初始化每个实例。 然后您可以分别清除每个实例的缓存。