最近作項目遇到了一個說小不小,說大不大的問題,那就是在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);
個人初級程序員直覺告訴我簡直完美!