cookie简单介绍

cookie存储了网站的一些很重要的信息,如用户身份信息、常用设置、设置地理位置等等各种信息。
使用cef访问网站时,如果设置了CefSettings.cache_path参数,则cookie等相关信息会保存在该目录下,若未设置则会保存在程序的内存中。

    CefSettings settings;
CefString(&settings.cache_path) = L"D:\\cefcookie";
C++

下图是访问 www.baidu.com 页面保存在指定位置的网站数据,可以看的其中也包括Cookies信息:

多页面共享cookie问题

有时某个网站我们想登录多个账号,但是会发现登录新的账号后,旧账号就退出了,即便打开多个浏览器操作结果也是一样的。这是因为新登录账号的cookie覆盖了旧账号的cookie,旧账号自然就失效了。
google chrome提供了一种“无痕窗口”模式,在菜单栏可以打开无痕窗口,该模式不会保存cookie等网站信息,旨在保护用户隐私。发现在该模式下登录的账号和在普通页面上登录的账号,可以同时保持在线,其实就是因为cookie等信息存储在不同的位置,不会互相覆盖。

若设置了CefSetting.cache_path,则所有页面cookie都会保存在该目录下,当登录某网站多个账号时,cookie被覆盖,就只能保持一个账号在线了。若不设置cache_path则cookie会保存在内存中,登录多个账号时cookie同样会被覆盖。

单页面cookie存储位置设置

解决上述问题,自然想到把每个页面的cookie单独存储就好了。在创建浏览器时通过CefRequestContextSettings可以指定页面cookie等信息存储位置,如下代码:

// 创建浏览器
void CefHelper::CreateBrowser(CWnd* parent, CRect rc, CString strUrl, CString strCookiePath, bool bShow)
{
m_handler = new CSimpleHandler(false); CefWindowInfo winInfo;
winInfo.SetAsChild(parent->GetSafeHwnd(), rc); CefRequestContextSettings settings;
CefString(&settings.cache_path).FromWString(wstring(strCookiePath));
CefRefPtr<CefRequestContextHandler> handlerCookie = new WXRequestContextHandler(wstring(strCookiePath).c_str());
CefRefPtr<CefRequestContext> rContext = CefRequestContext::CreateContext(settings, handlerCookie); CefBrowserSettings browserSettings;
CefBrowserHost::CreateBrowser(winInfo, m_handler, wstring(strUrl).c_str(), browserSettings, rContext);
}
C++
 

文章导航

http://www.itzhi365.com/?p=253

 

MFC调用CEF实现单页面单COOKIE管理《转》的更多相关文章

  1. 电商网站前端架构#1 多页面 vs 单页面

    课程地址:http://www.imooc.com/learn/186 讲师:远人 课程基础: html css js ,做过一些项目. 多页面 我们往常使用的web服务大多是多页面形式,依靠后端的架 ...

  2. vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案

    项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...

  3. 快速构建H5单页面切换骨架

    在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用 ...

  4. webpack+react+antd 单页面应用实例

    React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React.React入门最好的实例-TodoList 自己从开始 ...

  5. 浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

    本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)--requirejs + angular + a ...

  6. ionic单页面应用中微信分享的问题总结

    首先说一下 ionic 是单页面应用,也就是说整个项目就有一个index.html, 那么问题就就来了, 如果我们不同的页面要分享给大家的是不同的链接和图片,应该怎么去做呢? 这就是我们今天要总结的东 ...

  7. angular(3)服务 --注入---自定义模块--单页面应用

    ng内部,一旦发生值改变操作,如$scope.m=x,就会自动轮询$digest队列,触发指定的$watch,调用其回调函数,然后修改dom树. 干货:https://github.com/xufei ...

  8. Ember.js实现单页面应用程序

    1.1.1 摘要 单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序. SPA使用AJAX和HTML5创建流畅且响应迅速的Web应用程序,不会经常 ...

  9. phpcms-v9系统搭建wap网站及单页面

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...

随机推荐

  1. javascript_16-对象字面量

    JSON与对象字面量相似,仅仅是属性需要使用双引号引号引起. json是描述数据的一种规范 什么是JSON JavaScript Object Notation (JavaScript 对象表示形式) ...

  2. c# System.Collections接口图

  3. php实现人员权限管理(用户界面)

    上一篇介绍的是管理员页面,能完成对用户的角色修改和保存,这里来说一下用户界面,用户通过登录,显示出其对应功能界面. 1.登录页面(用的ajax,也可以用php表单提交方式) <!DOCTYPE ...

  4. LFS7.10——构造临时Linux系统

    参考:LFS编译——准备Host系统 前言 在准备好Host环境后,接下来构造一个临时Linux系统.该系统包含****构建所需要的工具.构造临时Linux系统分两步: 构建一个宿主系统无关的新工具链 ...

  5. 手写一个简易版Tomcat

    前言 Tomcat Write MyTomcat Tomcat是非常流行的Web Server,它还是一个满足Servlet规范的容器.那么想一想,Tomcat和我们的Web应用是什么关系? 从感性上 ...

  6. LINQ查询表达式(5) - LINQ Null值处理&异常处理

    查询表达式中处理Null值 此示例演示如何处理源集合中可能的 null 值. 诸如 IEnumerable<T> 等对象集合可能包含值为 null 的元素. 如果源集合为 null 或包含 ...

  7. jpg/jpeg/png格式的区别与应用场景

    注:在存储图像时采用JPG还是PNG主要依据图像上的色彩层次和颜色数量进行选择 一..jpg/jpeg格式的图片(jpg全名:jpeg) JPG(或是JPEG): 优点: (1)占用内存小,网页加载速 ...

  8. kafka2.12 集群搭建

    前提: 1.下载 kafka http://kafka.apache.org/downloads 2.下载配置zookeeper http://www.cnblogs.com/eggplantpro/ ...

  9. WinDbg的安装、配置和功能

    一.WinDbg简介 WinDbg是微软发布的一款免费而十分强大的调试工具.既然是微软自己发布的调试工具,那它对微软产品的调试当然是十分的强大.Windows 调试器 (WinDbg) 可用于调试内核 ...

  10. 1-STM32+W5500+GPRS物联网开发基础篇-工控板简介

    最近这些日子都在忙活STM+W5500+GPRS的板子,所以前面的那块板子的教程耽搁了些时间. 这次的板子和上一版相比更贴近了使用,是因为有朋友督促我要做一块直接可以在工厂使用的板子,所以设计了这一块 ...