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

简介:

以前在网上找到了很多关于中文验证码的文章(园子里也有,大家自己去找吧),但是都没有调测成功,总出现
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      {
 3    protected void Page_Load(object sender, EventArgs e)
 4    {
 5        CreateCheckCodeImage(GenCode(4));
 6    }

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

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

25        return code;
26
27    }

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

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

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

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

77
78    }

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



本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2007/04/21/721993.html,如需转载请自行联系原作者

相关文章
|
7月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
167 0
|
7月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
90 0
|
存储 开发框架 前端开发
asp.net与asp.net优缺点及示例
asp.net与asp.net优缺点及示例
|
安全 C# 开发工具
模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
模拟.NET实际应用场景,综合应用三个主要知识点:一是使用dnSpy反编译第三库及调试,二是使用Lib.Harmony库实现第三库拦截、伪造,三是实现同一个库支持多版本同时引用。
模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
|
4月前
|
API
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
|
3月前
|
开发框架 .NET C#
VSCode开发.net项目时调试无效
【9月更文挑战第22天】在使用 VSCode 开发 .NET 项目时遇到调试问题,可从项目配置、调试配置、调试器安装、运行环境、日志和错误信息等方面排查。确认项目类型及文件配置,检查 `launch.json` 文件及配置项,确保调试器扩展已安装并启用,验证 .NET 运行时版本和环境变量,查看 VSCode 输出窗口和项目日志文件,检查权限及代码错误。若问题仍未解决,可查阅官方文档或社区论坛。
|
3月前
|
自然语言处理 C# 图形学
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
使用dnSpyEx对.NET Core程序集进行反编译、编辑和调试
|
4月前
|
开发框架 JSON .NET
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
ASP.NET Core 标识(Identity)框架系列(三):在 ASP.NET Core Web API 项目中使用标识(Identity)框架进行身份验证
|
5月前
|
Linux C# iOS开发
如何用 WinDbg 调试Linux上的 .NET程序
【7月更文挑战第13天】 1. `dotnet-dump`: Collects process dumps with `dotnet-dump collect -p &lt;process_id&gt;`. 2. `lldb`: Debugs Mono runtime apps on macOS/Linux. 3. **Visual Studio Code**: Remotely debugs .NET via the C# extension. 4. **JetBrains Rider**: Supports remote debugging of .NET on Linux.
|
4月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?

相关实验场景

更多
下一篇
无影云桌面