最近作项目遇到了一个说小不小,说大不大的问题,那就是在WebBrowser中清空网站上用户的登录状态,程序员
一开始心想,那不就清空cookies就行啦,那么简单的事情,百度一下cookie
……session
……测试
是的,正如大家所百度的同样,我清空个cookie还须要删除文件夹?会不会太麻烦了,我敏锐的初级程序员直觉告诉我,应该不是这样的。网站
接着,我继续找,google
忽然看见有人回答调用clearcookie(),spa
我心想,卧槽,这太简单,3d
好,立马试试code
??????对象
你们请原谅我水平低下,实在没有找到这个方法在哪里,若是园里的大神找到了,请告知一声,小弟感激涕零。
接着,一位超级大神开始回答问题了
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一下
哦吼……
这个超级简单的方法真是超级简单,
测试可行。
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);
个人初级程序员直觉告诉我简直完美!