Use cookies from CookieContainer in WebBrowser

前端 未结 3 591
醉话见心
醉话见心 2020-11-30 05:07

Is there any way that I can actually use the cookies from a cookie container (taken from a WebRequest previously) and use them in a WebBrowser control? If so, how would I do

3条回答
  •  余生分开走
    2020-11-30 05:40

    Here's an example oh how this could be achieved:

    private class CookieAwareWebClient : WebClient
    {
        public CookieAwareWebClient()
        {
            CookieContainer = new CookieContainer();
        }
    
        public CookieContainer CookieContainer { get; private set; }
    
        protected override WebRequest GetWebRequest(Uri address)
        {
            var request = base.GetWebRequest(address);
            var httpRequest = request as HttpWebRequest;
            if (httpRequest != null)
            {
                httpRequest.CookieContainer = CookieContainer;
            }
            return request;
        }
    }
    
    
    private void Form1_Load(object sender, EventArgs e)
    {
        using (var client = new CookieAwareWebClient())
        {
            client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
            client.DownloadData("http://www.google.com");
            var cookies = client.CookieContainer.GetCookies(new Uri("http://www.google.com"));
            var prefCookie = cookies["PREF"];
            webBrowser1.Navigate("http://www.google.com", "", null, "Cookie: " + prefCookie.Value + Environment.NewLine);
        }
    }
    

提交回复
热议问题