Asp.net无刷新中文验证码调试成功,特分享给大家

本文介绍了一种实现中文验证码无刷新操作的方法,并提供了完整的源代码。通过修正原有错误,实现了中文验证码的生成,包括背景噪音线、前景噪音点等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前在网上找到了很多关于中文验证码的文章(园子里也有,大家自己去找吧),但是都没有调测成功,总出现
The target '__Page' for the callback could not be found or did not implement ICallbackEventHandler不能ICallbackEventHandler回掉的错误,我进行了一下修正并整理,现在可以实现了中文验证码无刷新的操作,现特把全部源码分享给大家

核心源码
1 public partial class Image:System.Web.UI.Page
2 {
3protectedvoidPage_Load(objectsender,EventArgse)
4{
5CreateCheckCodeImage(GenCode(4));
6}

7/**//**//**////<summary>
8///'产生随机字符串
9///</summary>
10///<paramname="num">随机出几个字符</param>
11///<returns>随机出的字符串</returns>

12privatestringGenCode(intnum)
13{
14stringstr="的一是在不了有和人这中大为上个国我以要他时来用们...";
15char[]chastr=str.ToCharArray();
16
17stringcode="";
18Randomrd=newRandom();
19inti;
20for(i=0;i<num;i++)
21{
22//code+=source[rd.Next(0,source.Length)];
23code+=str.Substring(rd.Next(0,str.Length),1);
24}

25returncode;
26
27}

28
29/**//**//**////<summary>
30///生成图片(增加背景噪音线、前景噪音点)
31///</summary>
32///<paramname="checkCode">随机出字符串</param>

33privatevoidCreateCheckCodeImage(stringcheckCode)
34{
35if(checkCode.Trim()==""||checkCode==null)
36return;
37Session["Code"]=checkCode;//将字符串保存到Session中,以便需要时进行验证
38System.Drawing.Bitmapimage=newSystem.Drawing.Bitmap((int)(checkCode.Length*21.5),22);
39Graphicsg=Graphics.FromImage(image);
40try
41{
42//生成随机生成器
43Randomrandom=newRandom();
44
45//清空图片背景色
46g.Clear(Color.White);
47
48//画图片的背景噪音线
49inti;
50for(i=0;i<25;i++)
51{
52intx1=random.Next(image.Width);
53intx2=random.Next(image.Width);
54inty1=random.Next(image.Height);
55inty2=random.Next(image.Height);
56g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);
57}

58
59Fontfont=newSystem.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold));
60System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2F,true);
61g.DrawString(checkCode,font,brush,2,2);
62
63//画图片的前景噪音点
64g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);
65System.IO.MemoryStreamms=newSystem.IO.MemoryStream();
66image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
67Response.ClearContent();
68Response.ContentType="image/Gif";
69Response.BinaryWrite(ms.ToArray());
70
71}

72catch
73{
74g.Dispose();
75image.Dispose();
76}

77
78}
希望该源码只是一个抛砖引玉的作用,你可以进行修改,比如说改中文字库,字体背景噪音等等
默认帐号密码均为51aspx,这里用户登录只是一个验证的例子,没有其他功能

作者51aspx
完整源码下载地址http://www.51aspx.com/CV/ZhongWenYanZhengMa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值