Chromium及CEF框架变更后如何设置Cookie存储路径?
嘿,我之前也踩过这个坑!Chromium和CEF的这次破坏性更新确实把单独设置Cookie存储路径的SetStoragePath()方法给移除了,现在得换个思路来配置——因为现在Cookie存储已经和全局缓存目录整合到一起,不再支持单独指定路径了。
你原来的代码是在CEF初始化后调用Cookie管理器的方法来设置路径,现在得把这个配置提前到初始化之前,通过CefSettings的CachePath属性来完成。具体修改如下:
var settings = new CefSettings(); // 保留你原来的GPU禁用设置 settings.CefCommandLineArgs.Add("disable-gpu", "1"); // 直接将你原来的Cookie存储路径赋值给CachePath,Cookie会自动存在该目录的子文件夹中 settings.CachePath = this.pipeName; // 用配置好的settings初始化CEF Cef.Initialize(settings);
补充说明:
- 现在CEF的设计逻辑是,所有缓存相关的内容(包括Cookie、LocalStorage、网页缓存文件等)都会统一存放在
CachePath指定的目录下,所以不需要再单独针对Cookie设置路径了。 - 如果需要为不同的CEF实例隔离Cookie,只需要给每个实例设置不同的
CachePath即可,每个目录的Cookie数据是完全独立的。
内容的提问来源于stack exchange,提问作者Alexander Galkin




