zoukankan      html  css  js  c++  java
  • cef谷歌内核浏览器获取cookie值并保存

    目的:获取cookie存入数据库,以实现下次登录的自动完成
    知识点:事件和委托

    建立cookie读取对象,继承接口ICookieVisitor

    public class CookieVisitor : ICookieVisitor
        {
            //定义委托
            public Action<Cookie> SendCookie = null;
            public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie)
            {
                if (SendCookie != null)
                {
                    SendCookie(cookie);
                }
    
                return true;
            }
    
            public void Dispose() { }
        }
    

    加载指定页面的cookie信息

    chrbro.FrameLoadEnd += (s, e) =>
                {
                    //一个页面加载如果有多个iframe会重复加载多次,需自己判断自己的加载的iframe或标记执行一次
                    BeginInvoke(new Action(() =>
                    {
                                        string _url = e.Url;
                                        //判断是否是需要获取cookie的页面
                                        if (_url.Contains("需要获取cookie的地址"))
                                        {
                                            //注册获取cookie回调事件
                                            ICookieManager cookieManager = chrbro.GetCookieManager();
                                            CookieVisitor visitor = new CookieVisitor();
                                            visitor.SendCookie += SaveCookie;
                                            cookieManager.VisitAllCookies(visitor);
                                        }
                                   
                    }));
                };
    

    回调函数体,这里可以执行需要执行的操作

    private void SaveCookie(CefSharp.Cookie cookie)
    {
                Console.WriteLine("Name:" + cookie.Name + "         Value:" + cookie.Value);
                ////保存数据库操作,根据自己需求更改
                //string sql = " INSERT INTO tbbro_cookies(name,value) VALUES ('" + cookie.Name + "','" + cookie.Value + "')";
                //cladata.svrUpdate(sql);
    

    }

  • 相关阅读:
    asp.net 启动关闭iis
    vue 界面关闭触发事件 ---实例销毁之前调用
    ElmentUI 设置禁止点击遮罩关闭 el-dialog 弹窗
    C#反射
    SQL Server 创建游标(cursor)
    文件解压缩
    文件流操作
    Linq查询
    C#线程 多线程 进程
    匿名类型和反射
  • 原文地址:https://www.cnblogs.com/soundcode/p/12653697.html
Copyright © 2011-2022 走看看