cef cookie管理

转载请说明原出处,谢谢~~:https://blog.csdn.net/zhuhongshu/article/details/81485730

cef中操作CefCookieManager的对象,可以对cookie进行管理。最简单的CefCookieManager::GetGlobalManager可以得到默认的全局cookie管理器,然后对cookie进行增删改操作

在cef初始化阶段,可以修改CefSettings::cache_path值来修改cookie在本地的保存路径。这个路径是所有web页面的cookie的保存路径

如果想把某个页面的cookie单独放置到一个路径方便管理,就无法使用CefSettings::cache_path设置路径,也无法用CefCookieManager::GetGlobalManager管理cookie。在调用CefBrowserHost::CreateBrowser方法来创建web页面时,方法的最后一个参数CefRefPtr<CefRequestContext>,可以指定这个web页面用到的一些上下文环境,这个上下文环境里,可以指定cookie的保存路径,也可以拿到这个web页面的CefCookieManager

调用CefRequestContext::CreateContext可以得到CefRefPtr<CefRequestContext>,在CreateContext方法里,可以指定cache_path对应cookie保存路径。以后如果有任何cookie操作,都不能直接使用全局cookie管理器,而要先通过GetRequestContext对象的GetDefaultCookieManager方法找到对应的专用cookie管理器来操作,否则会失败

另外CefRequestContext还可以单独控制页面的用户配置信息、证书错误处理、插件处理 等配置

 

Redrain

QQ:491646717

2018.8.7

您可以使用CefSharp来获取CookieCefSharp是一个基于Chromium的.NET包装器,使您能够在.NET应用程序中使用Chromium浏览器的功能。 要获取Cookie,您可以执行以下操作: 1. 首先,确保您已经安装并使用了CefSharp库。您可以通过NuGet包管理器来安装CefSharp。 2. 在您的代码中,创建一个CefSharp的浏览器实例。例如: ```csharp ChromiumWebBrowser browser = new ChromiumWebBrowser(); ``` 3. 注册一个事件处理程序来处理Cookie变化的情况。例如: ```csharp browser.CookieManager.CookieChanged += (sender, e) => { // 处理Cookie变化 var cookie = e.Cookie; Console.WriteLine($"Cookie变化:{cookie.Name} = {cookie.Value}"); }; ``` 4. 加载一个网页以触发Cookie的生成和变化。例如: ```csharp browser.Load("https://www.example.com");``` 5. 当需要获取Cookie时,您可以使用CookieManager来获取所有的Cookie。例如: ```csharp var cookieManager = browser.CookieManager; var cookieVisitor = new CookieVisitor(); cookieManager.VisitAllCookies(cookieVisitor); // 在CookieVisitor类中处理Cookie public class CookieVisitor : ICookieVisitor { public bool Visit(Cookie cookie, int count, int total, ref bool deleteCookie) { // 处理Cookie Console.WriteLine($"第{count}个Cookie:{cookie.Name} = {cookie.Value}"); return true; } } ``` 上述代码将会获取到所有的Cookie,并将其打印出来。 希望这可以帮助到您!如果您还有其他问题,请随时提问。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值