C# .NET 模拟登录带有验证码的网站,并自动提交表单数据!

xiaoleizi888 2015-04-13 11:31:14
1.模拟登录的网址:http://www.pceggs.com/nologin.aspx
2.登陆后的页面网址:http://www.pceggs.com/play/pc28.aspx
3.登陆后模拟表单提交的页面网址:http://www.pceggs.com/play/pg28Insert.aspx?LID=679556(注:此页面需要登录后才可以查看,并LID的值是最新一期需要投注的ID数字)

【说明:1和2只是模拟登录网站,3是登录后模拟表单提交数据!】

希望高手帮忙解决,基本随时在线等!(附上此网站的 测试账号:tast123,密码tast123)

如有不详,请回复说明!谢谢!


...全文
606 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fonvey 2018-12-07
  • 打赏
  • 举报
回复
能处理jsp,php, asp的网站,就是没有办法处理asp.net 的网站,因为viewstate
xiaoleizi888 2015-04-14
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
保持登录状态只要保持cookie就可以了。
可是获取验证码跟登录不一致...
threenewbee 2015-04-14
  • 打赏
  • 举报
回复
保持登录状态只要保持cookie就可以了。
xiaoleizi888 2015-04-14
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
人工打码,几分钱一条,有人做这个。或者是ocr识别,看难度了。
验证码这块不要求自动提交,只需要人工填写就可以,关键是如何登录成功后提交表单,一直保持登录状态!
xiaoleizi888 2015-04-14
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
除了验证码麻烦,其它因为没登录,不知道会不会麻烦……
其实验证码这块也不麻烦,就是我在获取验证码和登录时不一致,导致无法登录成功。至于表单提交都是post传值过去。还有一个问题就是如何保存登录状态一直存在。
jian_kangjiushihao 2015-04-14
  • 打赏
  • 举报
回复
C#.NET模拟登陆带有验证码的网站并跳转到指定页面示例 protected void btnLoad_Click(object sender, ImageClickEventArgs e) { HttpCookie cookie = Request.Cookies["CheckCode"]; if (String.Compare(cookie.Value, txtVali.Text, true) != 0) { Response.Write("<script lanuage=javascript>alert('验证码错误');location='javascript:history.go(-1)'</script>");//codego.net/ } else { DataSet ds = DB.reDs("select * from tb_HuenLian where UserName='" + txtUid.Text.Trim() + "' and PassWord='" + txtPwd.Text.Trim() + "'"); int i = this.checkLogin(txtUid.Text, txtPwd.Text); if (i > 0) { Session["id"] = ds.Tables[0].Rows[0][0].ToString(); Session["UserName"] = this.txtUid.Text; Session["PassWord"] = this.txtPwd.Text; Page.Response.Redirect("Yonghu.aspx"); } else { Response.Write("<script lanuage=javascript>alert('用户名称或密码错误!');location='javascript:history.go(-1)'</script>"); } } } public int checkLogin(string loginName, string loginPwd) { SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]); SqlCommand myCommand = new SqlCommand("select count(*) from tb_HuenLian where UserName=@loginName and PassWord=@loginPwd", con); myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 20)); myCommand.Parameters["@loginName"].Value = loginName; myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 50)); myCommand.Parameters["@loginPwd"].Value = loginPwd; myCommand.Connection.Open(); int i = (int)myCommand.ExecuteScalar(); myCommand.Connection.Close(); return i; }
xiaoleizi888 2015-04-14
  • 打赏
  • 举报
回复
引用 9 楼 Z65443344 的回复:
是谁告诉你 网站把验证码写入cookie了?
没有,我是说得到的cookie登录不成功! 望高手直接代码测试吧。
於黾 2015-04-14
  • 打赏
  • 举报
回复
是谁告诉你 网站把验证码写入cookie了?
xiaoleizi888 2015-04-14
  • 打赏
  • 举报
回复
引用 7 楼 jian_kangjiushihao 的回复:
C#.NET模拟登陆带有验证码的网站并跳转到指定页面示例 protected void btnLoad_Click(object sender, ImageClickEventArgs e) { HttpCookie cookie = Request.Cookies["CheckCode"]; if (String.Compare(cookie.Value, txtVali.Text, true) != 0) { Response.Write("<script lanuage=javascript>alert('验证码错误');location='javascript:history.go(-1)'</script>");//codego.net/ } else { DataSet ds = DB.reDs("select * from tb_HuenLian where UserName='" + txtUid.Text.Trim() + "' and PassWord='" + txtPwd.Text.Trim() + "'"); int i = this.checkLogin(txtUid.Text, txtPwd.Text); if (i > 0) { Session["id"] = ds.Tables[0].Rows[0][0].ToString(); Session["UserName"] = this.txtUid.Text; Session["PassWord"] = this.txtPwd.Text; Page.Response.Redirect("Yonghu.aspx"); } else { Response.Write("<script lanuage=javascript>alert('用户名称或密码错误!');location='javascript:history.go(-1)'</script>"); } } } public int checkLogin(string loginName, string loginPwd) { SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["conn"]); SqlCommand myCommand = new SqlCommand("select count(*) from tb_HuenLian where UserName=@loginName and PassWord=@loginPwd", con); myCommand.Parameters.Add(new SqlParameter("@loginName", SqlDbType.NVarChar, 20)); myCommand.Parameters["@loginName"].Value = loginName; myCommand.Parameters.Add(new SqlParameter("@loginPwd", SqlDbType.NVarChar, 50)); myCommand.Parameters["@loginPwd"].Value = loginPwd; myCommand.Connection.Open(); int i = (int)myCommand.ExecuteScalar(); myCommand.Connection.Close(); return i; }
谢谢!我要的不是你这种。而是模拟登录别人网站。 思路:1,获取网站cookie;2,通过cookie获取验证码;3,利用验证码和cookie一同提交登录 但是在提交的时候,返回的信息是登录失败!望高手解答
threenewbee 2015-04-13
  • 打赏
  • 举报
回复
人工打码,几分钱一条,有人做这个。或者是ocr识别,看难度了。
  • 打赏
  • 举报
回复
除了验证码麻烦,其它因为没登录,不知道会不会麻烦……

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧