当然可以,注意独立保持cookie就可以了。

解决方案 »

  1.   

    所谓登录,就是第一次访问,服务器返回一个set-cookie指令(不保存到cookie存储中),客户端浏览器在之后的访问中加上它,而服务器把所有这个set-cookie返回的cookie(很多web server将它命名为sessionid一类),识别为同一系列的请求,也就是一个会话,而服务器通过跟踪会话,当用户登录成功,将它存入会话中,判断出后续的操作是“已经登录的”。如果你把这个原理搞清楚了,就知道怎么做了。
      

  2.   


    谢谢,我现在学习使用异步操作,但遇到一个问题,还请指点
     string user = "123", pwd = "123";
                HttpWebRequest request = (HttpWebRequest)ar.AsyncState;
                Stream postStream = request.EndGetRequestStream(ar);
                string postdata = "User=" + user + "&Pass=" + pwd + "&Button=Login";
                byte[] byteArray = Encoding.UTF8.GetBytes(postdata);
                postStream.Write(byteArray, 0, postdata.Length);
                postStream.Close();
                request.BeginGetResponse(new AsyncCallback(GetResponseCallbackCookie), request);这段代码中,我提交post数据进行登录,我的意思是登录成功后我就保存相应的cookie。我新建了一个字典dic<string username,string cookieheader>...用这个字典来保存15个账户的cookie,以便获取信息时提交。
    但上面代码中,我虽然给post数据填写了账户以及密码,但是我怎么才能把这个user账户名传值到GetResponseCallbackCookie函数中, void GetResponseCallbackCookie(IAsyncResult asynchronousResult)
            {
                HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
                string asd= asynchronousResult.ToString();
                string asdasd = request.Credentials.ToString();
                // End the operation
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                Stream streamResponse = response.GetResponseStream();
                StreamReader streamRead = new StreamReader(streamResponse);
                string responseString = streamRead.ReadToEnd();
                //此时这里根据返回的字符串确认登录成功,我想保存cookie信息
               string CookieHeader = request.CookieContainer.GetCookieHeader(request.RequestUri);
                Dic.add(user,CookieHeader);我希望在这里获取前面post的user,写入字典            streamResponse.Close();
                streamRead.Close();            response.Close();
                allDone.Set();
            }请问有什么办法可以在上面那里获取user的值吗,谢谢!!
      

  3.   

    一个既然ok了,开15个线程不就ok了,不行你启动15次你现在的软件也能完成
      

  4.   

    谢谢各位,我学习了下cookie,每次登录后把cookie保存下来(string CookieHeader = request.CookieContainer.GetCookieHeader(request.RequestUri);)就ok了。等每次获取数据时带上CookieHeader 就可以了。
      

  5.   

    解决方法写成博客了,欢迎指点
    http://blog.csdn.net/wwwww112233/article/details/8562545
      

  6.   


    把拿到的cookie放到浏览里并打开怎么做呢?用InternetSetCookie 这个API好像不行呢
      

  7.   

    学习啦~!--- 跟人签名 ----------------
    高价收药、收药、北京收药:
    http://www.woshouyao.com/index.php