社区
网络编程
帖子详情
CWebBrowser2控件清理cookie
zheng_raul
2013-09-30 06:21:27
CWebBrowser2有没有好的方法清理cookies??或者有没有可不可以重启CWebBrowser2控件?
...全文
135
1
打赏
收藏
CWebBrowser2控件清理cookie
CWebBrowser2有没有好的方法清理cookies??或者有没有可不可以重启CWebBrowser2控件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
encoderlee
2013-09-30
打赏
举报
回复
对于会话级Cookie重启控件可以清理。 但是持久化Cookie重启控件也清理不了。 一般有三种方法来清理: 一. FindFirstUrlCacheEntry FindNextUrlCacheEntry DeleteUrlCacheEntry 这些API属于Wininet,可以清除持久的Cookie,不能清除会话级Cookie,因为会话级Cookie是在进程内存中,这些API是基于硬盘缓存文件的清理。 二.使用API函数 InternetGetCookie InternetSetCookie InternetGetCookieEx InternetSetCookieEx 这些API属于Wininet,可以获取、添加、覆盖、修改、删除持久Cookie和会话级Cookie(会话级Cookie需要在同进程中操作)。加Ex后缀的API可以对HTTPOnly的Cookie进行操作。 InternetSetCookie 该API可以添加会话级Cookie,也可以添加持久Cookie,添加持久的Cookie请在每条Cookie后加expires。比如: TestData = Test; expires = Sat,01-Jan-2000 00:00:00 GMT 使用该API也可以覆盖、修改、删除Cookie,但用的时候要十分注意!!! 设置的Cookie的归属URL和每个属性都要和目标Cookie一一对应才能正确操作Cookie。特别是Path和Domain属性,否则会导致添加了一个同名Cookie而不能覆盖或清除目标Cookie的结果。先查看Cookie是怎么被设置的,在响应头Set-Cookie中找到该Cookie是怎么被设置的。比如响应头是这样的: Set-Cookie: uin=o0363003672; PATH=/; DOMAIN=qq.com; 那么用此API修改此Cookie的时候一定不能忘了PATH和DOMAIN属性。 如果要修改此Cookie: InternetSetCookie("http://.qq.com/",NULL,"uin=55555555; PATH=/; DOMAIN=qq.com"); 也可以给此Cookie赋空值: InternetSetCookie("http://.qq.com/",NULL,"uin=; PATH=/; DOMAIN=qq.com"); 也可以删除此Cookie: InternetSetCookie("http://.qq.com/",NULL,"uin=; PATH=/; DOMAIN=qq.com ;expires = Sat,01-Jan-2000 00:00:00 GMT"); 给其设置一个过期的时间便清除了Cookie,会话级Cookie也可被清除。如果给会话级Cookie设置一个没有到期的时间,会话级Cookie将变成持久Cookie。 注意,每次只能操作一个Cookie。如果需要操作多个Cookie,需要调用多次该API。 InternetGetCookie 该API可以获取持久的Cookie,如果在同进程中,还可以获取会话级Cookie。如果要获取HTTPOnly的Cookie,请使用InternetGetCookieEx。值得注意的是InternetGetCookie的第二个参数lpszCookieName无用,InternetGetCookieEx的第二个参数才启用了。 参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa385326(v=vs.85).aspx 三.这个就是CWebBrowser2的一个接口 IHTMLDocument2::get_cookie() IHTMLDocument2::put_cookie() MSHTML(相当于Javascript) 对Document对象的Cookie属性进行操作。也可以实现类似InternetGetCookie和InternetSetCookie的效果。它同样可以获取、添加、覆盖、修改、删除持久Cookie和会话级Cookie。但同样也要十分注意设置的Cookie的每个属性都要和目标Cookie一一对应才能正确操作Cookie。特别是Path和Domain属性,否则会导致添加了一个同名Cookie而不能覆盖或清除目标Cookie的结果。 和上面的例子类似: 如果要修改Cookie: CComQIPtr<IHTMLDocument2> spDoc = GetHtmlDocument(); CComBSTR bstr = "uin=55555555; PATH=/; DOMAIN=qq.com;"; spDoc->put_cookie(bstr); 如果要删除Cookie: CComQIPtr<IHTMLDocument2> spDoc = GetHtmlDocument(); CComBSTR bstr = "uin=; PATH=/; DOMAIN=qq.com; expires = Sat,01-Jan-2000 00:00:00 GMT"; spDoc->put_cookie(bstr);
Web
Browser
基于C
Web
Browser
2的多窗口视图浏览器,和日历
控件
C#
Web
Browser
导出网页所有图片
本人写了个用C# 导出网页上的图片小项目 只要输入网址就可以导出网页上的图片了 有兴趣的可以看看。
VS2017 C
Web
Browser
显示百度地图/网页
VS2017使用C
Web
Browser
显示地图,网页等HTML文件,亲测可用
利用
Web
Browser
模拟操作进行模拟操作
利用
Web
Browser
模拟操作进行模拟操作 这是一个c++内
web
实现模拟登陆,还有获取
web
事件,以及c++与js的交互。 http://blog.csdn.net/nanjun520/article/details/53024503
一个比较完善的浏览器源代码
一个比较完善的浏览器源代码。用VB.net 开发,请用 VS2008 打开。作者QQ 353230192
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章