你的位置:首页 > ASP.net教程

[ASP.net教程]【wpf WebBrowser 清空网站的CookieSession 清空用户登录状态】


最近做项目遇到了一个说小不小,说大不大的问题,那就是在WebBrowser中清空网站上用户的登陆状态,

 

一开始心想,那不就清空cookies就行啦,那么简单的事情,百度一下

……

……

是的,正如你们所百度的一样,我清空个cookie还需要删除文件夹?会不会太麻烦了,我敏锐的初级程序员直觉告诉我,应该不是这样的。

接着,我继续找,

突然看见有人回答调用clearcookie(),

我心想,卧槽,这太简单,

好,立马试试

??????

大家请原谅我水平低下,实在没有找到这个方法在哪里,如果园里的大神找到了,请告知一声,小弟感激不尽。

 

接着,一位超级大神开始回答问题了

1 //http://social.msdn.microsoft.com/Forums/zh-CN/1761/thread/c80df74b-bce6-4e65-bf40-71b40ba58f08/2 //这样可以解决吗?3 wb.Document.Cookie.Remove(0, (wb.Document.Cookie.Count - 1))4 5 //其中wb为WebBrowser控件对象实例

 

好吧,我心想,这回看起来挺靠谱的,

试试吧

Document 是object的……
没事,as HTMLDocument

这回该有了了吧

哎呦,还真有!

那就赶紧测试一下吧……

 

怎么用户状态还是已登录……

这回,傻眼了,

这怎么搞……

那就查查呗,

啊哈哈哈,查到了,目测应该是session的原因

 

那就找找怎么清空session吧

 

哎呦,这一查看来查对了,资料好多

那就随便挑几个看看咯

 

我勒个去,

比清除session还要复杂

我敏锐的初级程序员直觉告诉我,不是这样的

于是转换阵地,google一下

 

哦吼……

C#删除WebBrowser控件Session

 

这个超级简单的方法真是超级简单,

测试可行。

using System.Runtime.InteropServices;private const int INTERNET_OPTION_END_BROWSER_SESSION = 42;[DllImport("wininet.dll", SetLastError = true)]private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

 

 

在你要清除的地方

InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);

 

 

 

我的初级程序员直觉告诉我简直完美!