清除webBrowser 缓存和Cookie的解决方案
通过测试webBrowser与IE缓存和Cookie都存放在Local Settings\Temporary Internet Files,我们可以直接调用IE API进行清除
解决方案1:
public enum ShowCommands : int
{
SW_HIDE = ,
SW_SHOWNORMAL = ,
SW_NORMAL = ,
SW_SHOWMINIMIZED = ,
SW_SHOWMAXIMIZED = ,
SW_MAXIMIZE = ,
SW_SHOWNOACTIVATE = ,
SW_SHOW = ,
SW_MINIMIZE = ,
SW_SHOWMINNOACTIVE = ,
SW_SHOWNA = ,
SW_RESTORE = ,
SW_SHOWDEFAULT = ,
SW_FORCEMINIMIZE = ,
SW_MAX =
}
[DllImport("shell32.dll")]
static extern IntPtr ShellExecute( IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, ShowCommands nShowCmd);
//清除IE临时文件
ShellExecute(IntPtr.Zero, "open", "rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255", "", ShowCommands.SW_HIDE)
其中ClearMyTracksByProcess 可进行选择设置 :
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 (全部删除)
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255
缺点:在Webbrowser 在不关闭的情况下无法清除cookie
解决方案2:
//清除Session所需要调用的函数
[ DllImport ("wininet.dll" , SetLastError = true )]
private static extern bool InternetSetOption ( IntPtr hInternet , int dwOption, IntPtr lpBuffer , int lpdwBufferLength );
//清空session
public void ResetSession()
{
//Session的选项ID为42
InternetSetOption ( IntPtr.Zero , , IntPtr.Zero , );
}
//清空cookie
public void ResetCookie()
{
if (c_web.Document != null )
{
c_web.Document.Cookie.Remove ( , c_web.Document.Cookie.Count() - ); }
string [] theCookies = System.IO.Directory.GetFiles ( Environment.GetFolderPath (Environment.SpecialFolder.Cookies ));
foreach (string currentFile in theCookies )
{
try
{
System.IO.File.Delete (currentFile );
}
catch (Exception ex)
{
}
}
}
缺点:需要程序取得管理员权限
解决方案3:
利用 webBrowser 执行清楚cookie的js代码
this._webBrowser.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());}}}})())");
缺点:在某些运行环境中会报“无法下载”的错,至于原因目前还没找到
清除webBrowser 缓存和Cookie的解决方案的更多相关文章
- 【C#】清除webBrowser 缓存和Cookie的解决方案
试了很多方法,最后发现万剑大哥的方法管用,转载一下 转自:https://www.cnblogs.com/midcn/p/3527123.html 通过测试webBrowser与IE缓存和Cookie ...
- C# 通过调用Win32 API函数清除浏览器缓存和cookie
public enum ShowCommands : int { SW_HIDE = , SW_SHOWNOrmAL = , SW_NOrmAL = , SW_SHOWMINIMIZED = , SW ...
- 【总结】清除webbrowser cookie/session的6种方法
下面是我测试下来的6种清除webbrowser中cookie的6种方法: //方法一:调用 wininet.dll清除cookie (推荐) SuppressWininetBehavior(); // ...
- Android手机清除微信缓存
方法一: 1.任意找一个微信好友,给他发送网址 http://debugx5.qq.com 2.自己点击这个网址跳转 3.进入后看到下面的页面,通过勾选第二张截图的Cookie和文件缓存来清除微信缓存 ...
- 使用Varnish代替Squid做网站缓存加速器的详细解决方案----转载
[文章作者:张宴 本文版本:v1.2 最后修改:2008.01.02 转载请注明出处:http://blog.s135.com] 我曾经写过一篇文章──<初步试用Squid的替代产品──Varn ...
- JS 清除IE缓存
js中自动清除ie缓存方法 — 常用 对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了. 但是对于静 ...
- 1>MSBUILD : cordova-build error BLD401: 错误: BLD00401: 找不到模块“C:\Users\z-pc\AppData\Roaming\npm\node_modules\vs-tac\app.js”。请转到“工具”-->“选项”-->“Apache Cordova 工具”-->“Cordova 工具”-->“清除 Cordova 缓存”,然后尝试重新生成
1>------ 已启动全部重新生成: 项目: BlankCordovaApp2, 配置: Debug Android ------1> Your environment has bee ...
- vue项目强制清除页面缓存
异常描述: 支付宝中内嵌h5项目(vue框架开发),前端重新打包上传之后访问页面会导致页面空白.页面tab点击异常之类异常情况,需要手动清除支付宝缓存才可以正常访问. 解决方案: 在HTTP协议中,只 ...
- 012_如何清除DNS缓存
运维过程中经常会进行切换域名解析等的操作,就需要查看是否更新.但常常DNS设置已经更新了,但是用户那边的DNS还是没有更新. 以下分析几点原因及我的解决方案. 一. <1>本地你的dns缓 ...
随机推荐
- 烂泥:【解决】VMware Workstation中安装ESXI5.0双网卡问题
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 由于需要做ESXI相关的实验,所以就在自己的机器上利用VM虚拟ESXI进行实验.因为此次实验是需要两块网卡的,所以就在创建ESXI虚拟机时添加了两块网卡 ...
- ES6箭头函数(Arrow Functions)
ES6可以使用“箭头”(=>)定义函数,注意是函数,不要使用这种方式定义类(构造器). 一.语法 1. 具有一个参数的简单函数 var single = a => a single('he ...
- 腾讯TOS
腾讯TOS 手机操作系统 3月3日开启内测[日期:2015-02-11] 来源:Linux社区 作者:Linux [字体:大 中 小] 腾讯TOS 操作系统 3月3日开启内测 2月1 ...
- 随笔:近期仍在流行的QQ盗号网页简析
前言:被盗号的人们,你们的防护意识有那么弱吗? 声明:本文提到的技术,仅可用作网络安全加固等合法正当目的.本文作者无法鉴别判断读者阅读本文的真实目的,敬请读者在本国法律所允许范围内阅读本文,读者一旦因 ...
- <mvc:default-servlet-handler/>导致SimpleUrlHandlerMapping失效
整理springmvc的demo的时候遇到一件奇葩事情,本来就是想简单演示一下SimpleUrlHandlerMapping的用法就完活.结果写好demo怎么都无法进行映射,就好像根本就没有创建Sim ...
- linux tar命令简介
一.使用介绍 1.名词区分 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文 ...
- 150929-拖延高于懒-HTML(End)
四天未更了,分别是因为Xshell和虚拟机链接不好,累,懒(好像是三天..) 就像我一直嗷嗷着要去学开出一样,5年都没有去......拖延症似乎比懒癌更可怕.慢慢的慢慢的,人长大了,小时候的一些东西才 ...
- Unity游戏暂停之Update与FixedUpdate区别
游戏暂停 示例程序 下面这段代码演示游戏暂停 using UnityEngine; using System.Collections; public class GamePauseTest : Mon ...
- S2结业考试的第一次测验
错题分析: 1:java中的错误处理是通过异常处理模型来实现的,那么异常处理模块能处理的错误是: A:运行时错误 B:逻辑错误 C:语法错误 D:内部错误 正确答案是:A 解析:运行时异常都是Runt ...
- 读Java面向对象编程(孙卫琴)
2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...