Loading
0

C#中WebBrowser控件静默清理cookie及session方法(测试通过)

若该文章解决了您的问题,可否收藏+评论+分享呢?
需求:最近在更新一个C#WebBrowser控件写的一个小浏览器,现在需求是每访问一次都自动清理下cookie 和session(WebBrowser默认用的是IE内核,清的是ie内核cookie和session)
在网上找了很多相关代码,都不好用,经过不懈努力,终于找到如下代码,经测试完美清理cookie和session并且是静默清理,不会有任何提示,
代码如下:


//清除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, 42, IntPtr.Zero, 0);
        }
        //清空cookie
        public void ResetCookie()
        {
            if (Browser.Document != null)
            {
                Browser.Document.Cookie.Remove(0, Browser.Document.Cookie.Count() - 1);

            }
            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)
                {
                }
            }
        }

调用:


private void No_Spider_btn_Click(object sender, EventArgs e)
        {
            ResetSession();//清理session
            ResetCookie(); //清理cookie
            Browser.Navigate("http://www.zfcdn.xyz/?Spiderv40");   
        }

如上代码几乎不用修改的完美解决了我的困惑,本文章转载于https://blog.csdn.net/mydudu2005/article/details/84545404 感谢提供。



 

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://www.zfcdn.xyz/showinfo-23-35847-0.html
被墙域名跳转QQ 851617266,可否收藏+评论+分享呢?
上一篇:C#中checkBox勾选显示密码取消勾选隐藏密码方法及代码
下一篇:C#中winform窗体改变大小控件也自动等比例改变缩放大小方法(亲测有效)