【wpf WebBrowser 清空网站的Cookie&Session 清空用户登录状态】
最近做项目遇到了一个说小不小,说大不大的问题,那就是在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);
我的初级程序员直觉告诉我简直完美!