关于asp.net c# 模拟登录 ,大家都是怎么做的,httpwebrequest 方式?   这种方式目标页面 的cookie织写不进去。

解决方案 »

  1.   

    http://topic.csdn.net/u/20110111/17/dcb6aeea-2600-4694-93c5-04611a9ebed2.html 
    httpwebrequest 方式 出现的问题
      

  2.   

    http://topic.csdn.net/u/20100315/11/d07f1960-70f0-4311-9b69-d4badf24360b.html
      

  3.   


    public  CookieContainer Get_Login()
        {
            CookieContainer cc = new CookieContainer();
            string FormURL = "http://www.boyuanrc.com/job/login.asp";   //处理表单的绝对URL地址
            string FormData = "name=cf123&pwd=123456&image2.x=13&image2.y=22&user=1";    //表单需要提交的参数
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] data = encoding.GetBytes(FormData);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(FormURL);
            request.Method = "POST";    //数据提交方式
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = data.Length;
            //模拟一个UserAgent
            Stream newStream = request.GetRequestStream();
            newStream.Write(data, 0, data.Length);        newStream.Close();        request.CookieContainer = cc;        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            cc.Add(response.Cookies);
            Stream stream = response.GetResponseStream();
            string WebContent = new StreamReader(stream, System.Text.Encoding.Default).ReadToEnd();
            response.Close();
            return cc;
        }
      

  4.   

     protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
            {
                if ((this.txtUsername.Text != "") && (this.txtPassword.Text != ""))
                {
                    string userName = this.txtUsername.Text.Trim();
                    string userPwd = this.txtPassword.Text.Trim();
                    Response.Cookies["Username"].Value = this.txtUsername.Text;
                    Response.Cookies["Password"].Value = this.txtPassword.Text;
                    string aidSelect = "select * from emp where emp_name ='" + userName + "' and emp_pwd='" + userPwd + "'";
                    DataTable fileTable = new DataTable();
                    fileTable = DbAccess.GetDS(aidSelect).Tables[0];
                    
                    if (fileTable.Rows.Count > 0)
                    {
                        string roleid = DbAccess.getFieldValue("select Role_id from RolePeopleRela where emp_id = (select emp_id from emp where emp_name ='" + userName + "' and emp_pwd='" + userPwd + "')");
                        Session ["RoleId"] = roleid;
                        Response.Write("<script>alert('欢迎登陆!')</script>");
                        Response.Redirect("Index.aspx");
                    }
                    else
                    {
                        //Response.Write("<script>alert('用户名与密码必须正确才能登陆!')</script>");
                        DbUITool.JsMsg(this.Page, "用户名与密码必须正确才能登陆!");
                        Response.Redirect("Login.aspx");
                    }
                }
                else
                {
                    //Response.Write("<script>alert('用户名与密码不能为空!')</script>");
                    DbUITool.JsMsg(this.Page, "用户名与密码不能为空!");
                }
            }
      

  5.   

     Response.Cookies["Username"].Value = this.txtUsername.Text;
      Response.Cookies["Password"].Value = this.txtPassword.Text;
      

  6.   

    这只是获取目标页面响应生成的cookie, 获取到了  怎么把这个cookie写入到目标页面的域名下面,使用户用IE打开目标页面 就是登录了的状态!