原来的代码:
public void SetCookies(string Url, string CookieName, string CookieValue)
        {
            HttpWebRequest HttpWreq = (HttpWebRequest)WebRequest.Create(Url);
            HttpWreq.KeepAlive = false;
            HttpWreq.Method = "Post";
            HttpWreq.CookieContainer = new CookieContainer();
            Cookie Cookies = new Cookie();
            Cookies.Name = CookieName;
            Cookies.Value = CookieValue;
            Cookies.Expires = DateTime.Now.AddHours(1);
            Cookies.Domain = new Uri(Url).Host;
            HttpWreq.CookieContainer.Add(Cookies);
            HttpWebResponse HttpWresp = (HttpWebResponse)HttpWreq.GetResponse();
            HttpWresp.Close();
        }在这里我却无法真的生成COOKIES.
想要的结果是:
当WINFORM的一个登录框登录时,同时生成此WINFORM中的嵌入的WEBBROW所调用的网站的COOKIES,以便用户不用再次登录,而是直接登录WINFORM的登录窗口直接登录到网站.
希望给出适当的原代码,谢谢!

解决方案 »

  1.   

    这是我用winform做得一个浏览器里的,把浏览的文件信息cookies存到这个记事本里了,怎么把它调出来我就不知道了:private void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
            {
                FileStream fs = new FileStream("log.txt", FileMode.Append, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine(DateTime.Now.ToShortDateString() + ":" + e.uRL.ToString());
                sw.Close();
                fs.Close();
            }
      

  2.   

    第一次登陆不是使用WebBrowser登陆吗?
    如果是,可以直接从WebBrowser获取Cookie
      

  3.   

    webBrowser1.Document.Cookie.ToString();
      

  4.   

            
    如果不是使用WebBrowser登陆,是使用IE啊或者Post登陆的话,可以试试下面的方法[DllImport("wininet.dll", SetLastError = true)]
            public static extern bool InternetGetCookie(string url, string cookieName, StringBuilder cookieData, ref int size);        private void button1_Click(object sender, EventArgs e)
            {
                int iSize = 1000;
                StringBuilder strCookie = new StringBuilder(iSize);         
                InternetGetCookie("http://community.csdn.net/", null, strCookie, ref iSize);
                MessageBox.Show(strCookie.ToString());
            }
      

  5.   

    我觉得有一个问题很奇怪, WebBrower是使用的IE内核,如果你之前在WebBrower中登录并保存过,就可以达到你想要的效果,即直接登录。至于你想要保存当前的Cookies,然后以后再传回来。这当然是可行的,不过我觉得存在一个问题:
    1:Cookie实际上是有失效的时间的,如果你不更新这个Cookies,一段时间后仍然失效。
    2:有一些网站的Cookies如果用特定的算法或内容,或者Cookie保存了其它信息你没有能够及时更新,反而会影响用户的体验。我想如果你不是打算写Cookies或者类似跨站攻击之类的软件的话,就把这个功能留给ASP.NET来做吧。
      

  6.   

    我是想在没有通过WEBBROW打开网页之前,先为WEBBROW默认的网址生成一个COOKIE,然后在打开网页时确定这个COOKIES是否存在
      

  7.   

    还是这个问题.
    简单的说,第一次登录是通过WINFORM的登录窗口登录的,也就是不去考虑WEBBROW的存,但是在知道已有网址的情况下,对这个网址在本机内生成COOKIES,而当软件在登录后,当打开WEBBROW时,WEBBROW的URL的域名就是生成COOKIE的这个域名,但是就是如何针对这个网址来在WINFORM下生成COOKIE
      

  8.   

    http://www.svnhost.cn/Article/Detail-116.shtml