清除webbrowser cookie/session的6种方法
下面是我测试下来的6种清除webbrowser中cookie的6种方法:
//方法一:调用 wininet.dll清除cookie (推荐)SuppressWininetBehavior();//方法二:删除用户登录后的信息,这里相当于浏览器的注销功能,使用的是ie自带的功能 (推荐)HtmlDocument document = wb.Document;document.ExecCommand("ClearAuthenticationCache", false, null);//方法三:删除本机cookie 此方法会弹出ie清除cookie的弹出框//Temporary Internet Files (Internet临时文件)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8//Cookies//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2//History (历史记录)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1//Form. Data (表单数据)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16//Passwords (密码)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32//Delete All (全部删除)//ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 2", "", ShowCommands.SW_HIDE);ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 255", "", ShowCommands.SW_HIDE);//方法四:使用webbrowser自带的清coookie的方法 (不推荐,清不掉session,实测无效)wb.Document.Cookie.Remove(0, (wb.Document.Cookie.Count() - 1));//方法五:使用js清除cookie (不推荐,清不掉session)wb.Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e<a.length&&a[e];e++){f++;for(b='.'+location.host;b;b=b.replace(/^(?:%5C.|[^%5C.]+)/,'')){for(c=location.pathname;c;c=c.replace(/.$/,'')){document.cookie=(a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString());}}}})())");//var a,b,c,e,f;//f=0;//a=document.cookie.split('; ');//b='.'+'baidu.com';b='.'+'www.baidu.com';//for(e=0;e<a.length;e++){// //b='.'+location.host;// b=b.replace(/^(?:%5C.|[^%5C.]+)/,'');// c=location.pathname;// c=c.replace(/.$/,'');// ck = a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString();// console.log(ck);// document.cookie=ck;//}//方法六:使用InternetSetCookie给cookie赋null值 (不推荐)//也可以给此Cookie赋空值:InternetSetCookie//InternetSetCookie("http://.qq.com/", NULL, "uin=; PATH=/; DOMAIN=qq.com");
方法一:
[System.Runtime.InteropServices.DllImport("wininet.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]public static extern bool InternetSetOption(int hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);/// <summary>/// 使用InternetSetOption操作wininet.dll清除webbrowser里的cookie/// </summary>private static unsafe void SuppressWininetBehavior(){/* SOURCE: http://msdn.microsoft.com/en-us/library/windows/desktop/aa385328%28v=vs.85%29.aspx* INTERNET_OPTION_SUPPRESS_BEHAVIOR (81):* A general purpose option that is used to suppress behaviors on a process-wide basis. * The lpBuffer parameter of the function must be a pointer to a DWORD containing the specific behavior to suppress. * This option cannot be queried with InternetQueryOption. * * INTERNET_SUPPRESS_COOKIE_PERSIST (3):* Suppresses the persistence of cookies, even if the server has specified them as persistent.* Version: Requires Internet Explorer 8.0 or later.*/int option = (int)3/* INTERNET_SUPPRESS_COOKIE_PERSIST*/;int* optionPtr = &option;bool success = InternetSetOption(0, 81/*INTERNET_OPTION_SUPPRESS_BEHAVIOR*/, new IntPtr(optionPtr), sizeof(int));if (!success){MessageBox.Show("Something went wrong ! Clear Cookie Failed!");}}
方法二:
就只有这一句就好了:
//方法二:删除用户登录后的信息,这里相当于浏览器的注销功能,使用的是ie自带的功能 (推荐)HtmlDocument document = wb.Document;document.ExecCommand("ClearAuthenticationCache", false, null);
方法三:
//方法三:删除本机cookie 此方法会弹出ie清除cookie的弹出框//Temporary Internet Files (Internet临时文件)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8//Cookies//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2//History (历史记录)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1//Form. Data (表单数据)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16//Passwords (密码)//RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 32//Delete All (全部删除)//ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 2", "", ShowCommands.SW_HIDE);ShellExecute(IntPtr.Zero, "open", "rundll32.exe", " InetCpl.cpl,ClearMyTracksByProcess 255", "", ShowCommands.SW_HIDE);
ShellExecute方法:
public enum ShowCommands : int{SW_HIDE = 0,SW_SHOWNORMAL = 1,SW_NORMAL = 1,SW_SHOWMINIMIZED = 2,SW_SHOWMAXIMIZED = 3,SW_MAXIMIZE = 3,SW_SHOWNOACTIVATE = 4,SW_SHOW = 5,SW_MINIMIZE = 6,SW_SHOWMINNOACTIVE = 7,SW_SHOWNA = 8,SW_RESTORE = 9,SW_SHOWDEFAULT = 10,SW_FORCEMINIMIZE = 11,SW_MAX = 11}[DllImport("shell32.dll")]static extern IntPtr ShellExecute(IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, ShowCommands nShowCmd);
方法四:
//方法四:使用webbrowser自带的清coookie的方法 (不推荐,清不掉session,实测无效)wb.Document.Cookie.Remove(0, (wb.Document.Cookie.Count() - 1));
方法五:
//方法五:使用js清除cookie (不推荐,清不掉session)wb.Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e<a.length&&a[e];e++){f++;for(b='.'+location.host;b;b=b.replace(/^(?:%5C.|[^%5C.]+)/,'')){for(c=location.pathname;c;c=c.replace(/.$/,'')){document.cookie=(a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString());}}}})())");//var a,b,c,e,f;//f=0;//a=document.cookie.split('; ');//b='.'+'baidu.com';b='.'+'www.baidu.com';//for(e=0;e<a.length;e++){// //b='.'+location.host;// b=b.replace(/^(?:%5C.|[^%5C.]+)/,'');// c=location.pathname;// c=c.replace(/.$/,'');// ck = a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString();// console.log(ck);// document.cookie=ck;//}
将 wb.Navigate("javascript:void((function(){。。。}里的内容换成下面注释掉的代码,写好你要清cookier 的domain然后就可以清了,但清不掉session,这个是从外国网站上看来的,实际无效!
方法六:
//方法六:使用InternetSetCookie给cookie赋null值 (不推荐)//也可以给此Cookie赋空值:InternetSetCookie//InternetSetCookie("http://.qq.com/", NULL, "uin=; PATH=/; DOMAIN=qq.com");
关于InternetSetCookie这个方法自己网上搜索一下.
清除webbrowser cookie/session的6种方法相关推荐
- 【总结】清除webbrowser cookie/session的6种方法
下面是我测试下来的6种清除webbrowser中cookie的6种方法: 往下拉有详细用法 //方法一:调用 wininet.dll清除cookie (推荐) SuppressWininetBehav ...
- cookie注销的几种方法与注意事项
2019独角兽企业重金招聘Python工程师标准>>> 之前做一个单点登陆的,把生成的token字符串存放到cookie中.退出的时候要清理cookie信息. 清除cookie有如下 ...
- css清除浮动大全,共8种方法。
本文转载自:http://www.jb51.net/css/173023.html 清除浮动是每一个 web前台设计师必须掌握的机能.css清除浮动大全,共8种方法. 浮动会使当前标签产生向上浮的效果 ...
- linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
一.编译环境的准备 yum install gcc yum install gcc-c++ libstdc++-devel yum install zlib-devel 二.源码包准备 wge ...
- [转]快速清除SQL Server日志的两种方法
日志文件满而造成SQL数据库无法写入文件时,可用两种方法: 第一种方法:清空日志. 1.打开查询分析器,输入命令 以下是引用片段: DUMP TRANSACTION 数据库名 WITH NO_LOG ...
- 清除浮动最常用的四种方法
1.为什么要清除浮动 开发过程中,浮动是需要掌握的一个技能,页面布局当中,在无法确定子元素的高度(height)时,我们无法给父级标签一个固定的高度(height),我们想要的是,由子元素的高度去控制 ...
- cookie获取的两种方法
获取cookie的核心目的无非就是实现登陆,一般来说我们实现请求大致也有两种方式,第一种是selenium,第二种是包含requests,urllib等的其他类型,那么cookie的获取也是针对这样的 ...
- html清除图片上下间距,css - 三种方法解决LI和内部Img的上下间距问题
在火狐浏览器和谷歌浏览器(qq浏览器,谷歌内核)bug类似这张图: img的高度是190*127 但是放到li中,li并没有设置高度,却和内部的图片之间上下错位. 若强行给li设置高度127,他和im ...
- Struts2中使用Session的两种方法
在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式: 通过ActionContext 类中的方法getSession得到 Action实现org.apache.st ...
最新文章
- 下一代超大规模软件定义网络技术实践
- Java 7中的Try-with-resources
- SSO模型及单点登录SSO技术选型
- java wmi远程桌面服务器_WMI实现远程监控多台windows服务器
- go build编译不同环境
- 百度贴吧发帖软件_贴吧自动发帖软件
- 使用javascript实现浏览器全屏
- 走向.NET架构设计—第五章—业务层模式,原则,实践(后篇)
- 浏览器 刷新页面后回到顶部_当你在浏览器中,忘记了曾经的登录密码怎么办......
- re.split() 根据句子中的序号进行切分
- iOS键盘高度自适应(中英文输入)
- 你是否真的适合搞NDK开发?
- Yii2中使用自定义的数据库
- 遥感原理与应用网络课程学习
- SSM 实现学生成绩管理系统(完整代码)
- 在win7中chm打不开的多种解决方法
- 可能是全网唯一办法:解决粘滞键(shift)键一直按下,在配置中心无法关闭_v1.0.0
- dva的用法_dva入门讲解
- SpringCloud Netflix---Eureka服务注册
- Windows 2012 R2服务器的80端口被IIS占用的最好处理办法
热门文章
- OpenCV在G-API上移植各向异性图像分割
- OpenCV YOLO DNN(yolo_object_detection)
- 适用于Linux / X11的Qt
- C++实现插值查找(附完整源码)
- QT绘制带有数据源的图表
- QT的QGradient类的使用
- C++STL的queue容器
- C++ Double-Ended Queues(双向队列)
- python考试报名官网安徽_今年优选:芜湖python
- 零售连锁管理软件_连锁超市用哪个收银软件好?