带有验证码的模拟登陆,有源码的请把源码发我 谢谢
如果是问问题,能不能认真点??
???
@摩羯座: 你发出的问题,连语文老师那里都通不过,明白为什么人家叫你认真点了吗?
如果是问问题,能不能认真点??
找到验证码的URL,在模拟登录之前,自己请求一次验证码,显示出来,手动输入(如果是高手可以图片识别也可以)即可。
感觉还是在自己做的网站上模拟比较好
public class CheckCode : IHttpHandler,IRequiresSessionState {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/jepg";
char [] AllChars = new char[62];
char ch = '0';
for (int i = 0; i < 10; i++)
{ AllChars[i] = ch; ch =(char)(ch + 1); }
ch = 'a';
for (int i = 10; i < 36; i++) {
AllChars[i] = ch;
ch = (char)(ch + 1); }
ch = 'A'; for (int i = 36; i < 62; i++)
{ AllChars[i] = ch; ch = (char)(ch + 1); }
string checkCode = ""; Random random = new Random(); for (int i = 0; i <4; i++) { checkCode += AllChars[random.Next(0, 62)]; }
//将验证码保存到Session中,用于和用户输入的验证码做比对 context.Session["CheckCode"] = checkCode;
//处理到图像中 //1 创建位图对象,width和hight,单位是px,默认背景颜色是黑色 Bitmap bitmap = new Bitmap(60, 30); //2 创建画布对象,将位图放置到画布上 Graphics g = Graphics.FromImage(bitmap); //3 将验证码画到画布上 //将画布刷成白色背景,留1px的边框线 g.FillRectangle(Brushes.White, 1, 1, 58, 28); g.DrawString(checkCode, new Font("Times New Roman", 15), Brushes.Blue, 2, 2); //4 画一些干扰线,干扰点 for (int i = 0; i < 300; i++) { bitmap.SetPixel(random.Next(1, 58), random.Next(1, 28), Color.Gray); }
//写回到Response bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); //context.Response.Flush(); //context.Response.End(); }
建议使用这个进行模拟登陆,但是验证码的问题需要针对不同样式的验证码进行不同的识别,这个需要高手。http://www.sufeinet.com/forum-135-1.html
http://www.51pansou.com 可以搜索你想要的代码