当前位置:编程学习 > C#/ASP.NET >>

关于网站登录的一些问题(2)谁能解决都行

代码如下:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace MailLogin1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }
       public static CookieContainer cc = new CookieContainer();
        public HttpWebResponse SendRequest(string method, string url, string referer, byte[] buffer)
        {

            HttpWebRequest request = WebRequest.Create(new Uri(url)) as HttpWebRequest;
            request.Credentials = CredentialCache.DefaultCredentials;
            request.Method = method;
            request.Timeout = 10000;
            request.CookieContainer = cc;
            request.ContentType = "application/x-www-form-urlencoded";
            request.UserAgent = @"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)";
            //if(referer!=null && referer.Length>0)
            //    request.Referer = referer;
            if (method.ToUpper() == "POST")
            {
                Stream stream = request.GetRequestStream();
                 stream.Write(buffer, 0, buffer.Length);
                stream.Close();
            }
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            return response;
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            string strHTML = "";
            string getcookieurl = "http://www.jubaoxiang.com/logon.aspx";
            strHTML = GetSyncHTML(CreateWebRequest(getcookieurl), null);
             HttpWebResponse loginresponse1 = SendRequest("GET", getcookieurl, null, null);
           cc.Add(loginresponse1.Cookies);
           
            
       
            string url = "http://www.jubaoxiang.com/logondo.aspx";
            string postdata = "username=hellscream&pwd=fuckyou&checkcode="+txtcheckcode.Text.ToString();
            byte[] buf = System.Text.Encoding.UTF8.GetBytes(postdata);
            HttpWebResponse loginresponse = SendRequest("POST", url, "http://www.jubaoxiang.com/logon.aspx", buf);
           
            ressponsewriter(loginresponse );
          


           

        }

        private void ressponsewriter(HttpWebResponse loginresponse)
        {
            Console.WriteLine(((HttpWebResponse)loginresponse).StatusDescription);
            // Get the stream containing content returned by the server.
            Stream dataStream;

            dataStream = loginresponse.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // Display the content.
            rtbContent.Text = responseFromServer;
            Console.WriteLine(responseFromServer);
            // Clean up the streams.
            reader.Close();
            dataStream.Close();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox1.Load("http://www.jubaoxiang.com/checkcode.aspx");
        }
        public static String GetSyncHTML(WebRequest request, System.Text.Encoding encoding)
        {
            Stream dataStream = GetStream(request);
            string strHtml = string.Empty;
            System.IO.StreamReader sr = null;
            try
            {

                sr = new System.IO.StreamReader(dataStream);
                strHtml = sr.ReadToEnd();
            }
            finally
            {
                if (sr != null) { sr.Close(); }
            }
            return strHtml;
        }
          public static HttpWebRequest CreateWebRequest(string URL)
        {
            return CreateWebRequest(URL, string.Empty, string.Empty, null);
        }

          public static HttpWebRequest CreateWebRequest(string URL, string strReferer, string PostData, System.Text.Encoding encoding)
          {
              Uri URI = new Uri(URL);
              HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URI);
              request.KeepAlive = true;
              request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*";
              if (strReferer.Length == 0)
              {
                  request.Referer = URL;
              }
              else
              {
                  request.Referer = strReferer;
              }
              request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 2.0.50727)";
              return request;
          }
          public static Stream GetStream(WebRequest request)
          {
              Stream dataStream;
              HttpWebResponse response = (HttpWebResponse)request.GetResponse();
              dataStream = response.GetResponseStream();
              cc.Add(response.Cookies);
              return dataStream;

          }
    }
}




问题出来了,

我写的提交后的数据:
GET /logon.aspx HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)
Host: www.jubaoxiang.com


正常使用IE后提交的数据:
GET /logon.aspx HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; 360SE)
Host: www.jubaoxiang.com
Connection: Keep-Alive
Cookie: 
AJSTAT_ok_pages=87; AJSTAT_ok_times=1; cck_lasttime=1281316374421; cck_count=0; EDiaryEditor_RUser=1324481743; ASP.NET_SessionId=mufhxm45nfdrhlrfbbaljf45; 

__utma=132314517.1019886893.1281316376.1281318389.1281320740.3; __utmb=132314517.9.10.1281320740; __utmz=132314517.1281316376.1.1.utmcsr=(direct)|utmccn=

(direct)|utmcmd=(none); 

forever.jubaoxiang.com=UserID=w4GXGAQHpLg=&UserName=yTTwCYh8NDzWKnkkqR/Bjw==&Email=Lw4ktGkELI1hzpSRIxhbyTeVb26kd3Ii&Keys=j+519z2Nhn+IAqbJdZ5NcG4rG4TuBfT6Y+Ie

gu6vngA=&IP=o62rgiH+Lxyl5zAwHzdEIA==&Time=bjPmWpMQkaUAytXq7FcWdkkehI4nb9X4; afp_znzgp-100203=yes; afp_rg-cp-091103=yes; __utmc=132314517




最后发现没有cookie - -,搞了老半天还是不行 - -,有哪位前辈帮忙看下什么问题么?
--------------------编程问答-------------------- 等

在线等

哎 --------------------编程问答-------------------- 模拟登陆?
很多站点还要带很多参数的
 string formatString = "txt_UserName={0}&txt_Password={1}&btn_Login={2}&__VIEWSTATE={3}&__EVENTVALIDATION={4}&txt_PreUrl={5}&__EVENTTARGET={6}&__EVENTARGUMENT={7}&btn_Login.x={8}&btn_Login.y={9}";
           --------------------编程问答-------------------- 换个请求试试 用WebRequest
或者HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");
这东西很麻烦的,有时候cookie还需要自己设置 --------------------编程问答-------------------- 经过几天回家的无聊时间,发现是网站的设置cookie时用javascript脚本实现cookie,而代码里面没有执行javascript脚本 --------------------编程问答-------------------- 那就恭喜楼主解决了 --------------------编程问答-------------------- 恭喜恭喜 --------------------编程问答-------------------- 原来已经解决了....... --------------------编程问答-------------------- 我也来看看这是什么情况 --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,