分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

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

发布时间:2023-09-06 02:29责任编辑:郭大石关键词:浏览器Cookie
原文:使用CefSharp在.Net程序中嵌入Chrome浏览器(八)——Cookie

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

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

原文地址:https://www.cnblogs.com/lonelyxmas/p/10249471.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved