日期:2014-05-18  浏览次数:20859 次

winform 如何获取这样的验证码?
我在winform中用
  // 返回响应。
  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  // 取得响应的数据输出流
  Stream dataStream = response.GetResponseStream();
  // 打开输出流
  StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("GB2312"));
  string responseFromServer = reader.ReadToEnd();

获取出来的responseFromServer 字符串包含验证码的HTML为:
<span id="ValidCtrl1_Label1"><IMG id='codeimg' align='absBottom' border='0'><SCRIPT>document.forms[0].codeimg.src='/Validator/valid7251570.aspx?'+Math.random()</SCRIPT></span>
这个验证码我怎么获取出来啊,现在不是识别的问题,关键我连这个图片地址都无法获取出来。请教高手!

------解决方案--------------------
1、用一个单独的网页来呈现 验证码图片,显示直接 引用该网页。比如:<img id="imgVerify" src="VerifyCode.aspx?" alt="看不清?点击更换" onclick="this.src=this.src+'?'" />
2、识别 利用Session、Cookie最简单。
比如:先将 验证码字符串 存入cookie , 
string str = this.CreateValidateNumber(4);
Session["Vnumber"] = str;
this.CreateValidateGraphic(this, str);
Response.Cookies.Add(new HttpCookie("CheckCode", str));
再利用一个自带的方法判断:
 if (String.Compare(Request.Cookies["CheckCode"].Value, 输入框.Text.ToString().Trim(), true) != 0)
{
Response.Write("对不起,验证码错误!");
return;
}