原文:使用CefSharp在.Net程序中嵌入Chrome浏览器(八)——Cookiehtml
CEF中的Cookie是经过CookieManager来管理的,能够用它来设置发送的Cookie。chrome
发送Cookie浏览器
发送Cookie的一个基本示例以下:服务器
var cookieManager = _chrome.GetCookieManager();
cookieManager.SetCookie("http://localhost:5000/test", new Cookie()
{
Name = "name",
Value = "123"
});cookie
不过,GetCookieManager函数只有ChromiumWebBrowser初始化完成后才能使用,能够经过_chrome.IsBrowserInitialized函数判断,或者感知IsBrowserInitializedChanged事件。函数
发送全局Cookiehtm
自己系统有一个全局的CookieManager,用它能够设置全部请求的Cookieblog
var cookieManager = Cef.GetGlobalCookieManager();
await cookieManager.SetCookieAsync("http://127.0.0.1:5000", new Cookie()
{
Name = "aaa",
Value = "bbb",
});事件
这种方式下,全部的请求都默认携带该cookie,用来传递用户的身份信息等很是方便。get
读取Cookie
若是要获取服务器返回的Cookie,则须要本身实现一个ICookieVisitor
class CookieVisitor : ICookieVisitor
{
public bool Visit(Cookie cookie, int count, int total, ref bool deleteCookie)
{
var name = cookie.Name;
var value = cookie.Value;
return true;
}
public void Dispose()
{
}
}
而后在CookieManager中关联CookieVisitor,当页面加载完成后,会调用Visitor访问cookie。
_chrome = new ChromiumWebBrowser();_chrome.Address = "http://127.0.0.1:5000/test";_chrome.FrameLoadEnd += (_s, _e) =>{ var cookieManager = _chrome.GetCookieManager(); cookieManager.VisitAllCookies(new CookieVisitor());};