跨网站POST验证码的时候总是报验证码错误!!
sorin 2008-12-18 02:48:48 跨网站POST/GET数据的时候总是验证码错误
公司有一个老站点是通过一个员工号和随机验证码来查询信息 原理是通过form表单 POST数据得到人员信息 (但源码已经无法得到了)
代码如下:
<form action="http://www.1111.com/abc.aspx" method="post" target="_parent">
员工号
<input name="idno" type="text" />
<img alt="验证码" src="http://www.1111.com/verifycode" />
<input type="text" name="verifycode"/>
<input type="submit" name="submit" value="查询" />
</form>
现在我要做一个新站点 需要引用老页面的查询,随机的验证码还是从老地址取
新的查询页面search.aspx 这个页面就是后台POST数据(也就是向老页面http://www.1111.com/abc.aspx 发送POST数据然后得到结果)
代码如下:
<form action="http://www.2222.com/search.aspx" method="post" target="_parent">
员工号
<input name="idno" type="text" />
<img alt="验证码" src="http://www.1111.com/verifycode" />
<input type="text" name="verifycode"/>
<input type="submit" name="submit" value="查询" />
</form>
search.aspx的代码如下 应该没什么问题 :
Encoding encoding = Encoding.GetEncoding("UTF-8");
byte[] Data = encoding.GetBytes("idno=123456&verifycode=8888"); //这就是人员号和验证码信息
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.1111.com/abc.aspx"); //准备把数据发送到原来的页面
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = Data.Length;
Stream Out = myRequest.GetRequestStream();
Out.Write(Data, 0, Data.Length);
Out.Close();
HttpWebResponse MyResponse = (HttpWebResponse)myRequest.GetResponse();
Stream InStream = MyResponse.GetResponseStream();
StreamReader read = new StreamReader(InStream, encoding);
return read.ReadToEnd();
但是在提交完毕时总是说验证码错误,页面也并没有新打开窗口,始终是在原窗口显示的
因为不涉及用户名密码,所以并没有涉及到保存COOKIE问题,我想它只用到了SESSION ,因为每次查询都需要输入验证码
这个问题已经困扰我很长时间了,高手指教一下 多谢了