有网站 www.abc.com
现已获得他的cookies的字符串 sCookie
string sCookie = "xxxxxxxx";用webBrowser控件的Navigate方法可以访问www.abc.com,但不是登录状态
请教如何让webBrowser用这个sCookie让他自动登录

解决方案 »

  1.   

    [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
      public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
      
     InternetSetCookie(url, "", Globals.ThisDocument.sessionID);
      

  2.   

    谢谢wuyq11, 不过好像不行呀,代码都通过了,但是没有登录成功。可以确认这个cookie是有效的,请帮忙看下下面代码有什么问题        [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
            public static extern bool InternetSetCookie(string lpszUrlName, string lbszCookieName, string lpszCookieData);
              private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
            {
                string sCookie = "xxxxx";
                if (e.KeyCode == Keys.Enter)
                {                string url = toolStripTextBox1.Text;                SetCookie(url, "", sCookie);
                    Navigate(url);
                }
            }        public static void SetCookie(string siteUrl, string cookieName, string cookieData)
            {
                if (!InternetSetCookie(siteUrl, cookieName, cookieData))
                {
                    throw new Exception("Exception setting cookie: Win32 Error code=" + Marshal.GetLastWin32Error());
                }
            }        // Navigates to the given URL if it is valid.
            private void Navigate(String address)
            {
                if (String.IsNullOrEmpty(address)) return;
                if (address.Equals("about:blank")) return;
                if (!address.StartsWith("http://") &&
                    !address.StartsWith("https://"))
                {
                    address = "http://" + address;
                }
                try
                {
                    webBrowser1.Navigate(new Uri(address));
                }
                catch (System.UriFormatException)
                {
                    return;
                }
            }
      

  3.   

    加入下面代码后解决问题
                    foreach (string c in sCookie.ToString().Split(';'))
                    {
                        string[] item = c.Split('=');
                        string name = item[0];
                        string value = item[1];
                        InternetSetCookie(url, name, value);
                    }