使用CefSharp在.Net程序中嵌入Chrome浏览器(八)——Cookie

栏目: ASP.NET · 发布时间: 6年前

内容简介:CEF中的Cookie是通过CookieManager来管理的,可以用它来设置发送的Cookie。发送Cookie的一个基本示例如下:var

CEF中的Cookie是通过CookieManager来管理的,可以用它来设置发送的Cookie。

发送Cookie

发送Cookie的一个基本示例如下:

var cookieManager =  _chrome . GetCookieManager ();
cookieManager. SetCookie ( "http://localhost:5000/test" new   Cookie ()
{
     Name   =  "name" ,
     Value  =  "123"
});

不过,GetCookieManager函数只有ChromiumWebBrowser初始化完成后才能使用,可以通过_chrome.IsBrowserInitialized函数判断,或者感知IsBrowserInitializedChanged事件。

发送全局Cookie

本身系统有一个全局的CookieManager,用它可以设置所有请求的Cookie

var cookieManager =  Cef . GetGlobalCookieManager ();
await  cookieManager. SetCookieAsync ( "http://127.0.0.1:5000" new   Cookie ()
{
     Name     =  "aaa" ,
     Value    =  "bbb" ,
});

这种方式下,所有的请求都默认携带该cookie,用来传递用户的身份信息等非常方便。

读取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 ());
};


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Responsive Web Design

Responsive Web Design

Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00

From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器