ASP.Net中四位数字验证码的实现
来源:互联网 发布:网络歌手受排挤 编辑:程序博客网 时间:2024/05/01 23:34
以前看到别人生成的图片验证码,总有一种高大上的感觉,最近试了下,发觉其实也不难,很简单的一个小功能。不过这里我只能是生成数字,至于我们经常见的字母、汉字什么的还不知道怎么实现,有待进一步研究。
首先看前台的代码,这里我用webForm中的aspx页面:
<asp:Label ID="Label1" runat="server" Text="验证码:"></asp:Label> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><img src="ValidateCode.ashx" onclick="this.src='ValidateCode.ashx?'+new Date()"/> <br/> <asp:Button ID="Button1" runat="server" Text="验证" OnClick="Button1_Click" />
这里,只是用了一个Label,一个TextBox,一个Image和一个Button按钮。TextBox用来输入显示的验证码,Image用来显示验证码,点击Button按钮对输入的验证码正确与否进行验证。这里要注意的是img控件中它的链接地址是一个一般处理程序,我们将在这个一般处理程序中生成验证码;它还有一个onclick事件,在onclick事件中设置它的链接地址,设置链接地址的同时加上一个 new Date(); 这样就可以使它点击时,每隔一秒产生一个新的验证码。
然后我们再看一般处理程序ValidateCode.ashx中是如何生成这个验证码的:
context.Response.ContentType = "image/jpeg";//输出类型设置为image/jpeg using(Bitmap bitmap = new Bitmap(60,30)) //大小设置为宽60px,高30px { using (Graphics g = Graphics.FromImage(bitmap) ) { Random random = new Random(); //生成一个随机数 string strCode = random.Next(1000, 9999).ToString(); //把这个随机数设置为四位 context.Session["Code"] = strCode; //把生成的验证码存在Session中,等到验证的时候再使用 g.DrawString(strCode,new Font("楷体",12),Brushes.Red,20,10); //设置验证码的字体及大小以及颜色 } bitmap.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); }最后,当输入验证码后,点击Button按钮,判断输入到文本框中的值与Session中存的是否相同:
protected void Button1_Click(object sender, EventArgs e) { if (Session["Code"].ToString() == TextBox1.Text)//判断文本框的值与Session中存的值是否相同 { Response.Write("验证成功!");//相同则验证成功 } else { Response.Write("验证错误!");//不同则验证错误 } }界面如下图所示,有点丑,凑合着看吧!
0 0
- ASP.Net中四位数字验证码的实现
- asp.net简单数字验证码的实现
- asp中文数字验证码的实现
- asp中文数字验证码的实现
- 在ASP.NET下实现数字和字符相混合的验证码(vb.net Code)
- 在ASP.NET下实现数字和字符相混合的验证码(vb.net Code)
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- ASP.NET实现数字和字符相混合的验证码(转)
- [转帖]在ASP.NET下实现数字和字符相混合的验证码
- 转·在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码
- 在ASP.NET下实现数字和字符相混合的验证码(C#)
- nyoj103 A+B ProblemII
- jquery事件
- 取数游戏
- python object和type
- Enumeration和Iterator的区别
- ASP.Net中四位数字验证码的实现
- 启动Eclipse,不让m2e自动Updating index的解决办法
- *运项目1.0
- thinkphp模板输出cookie,session中的值
- 分数累加
- 第九周项目三输出星号图1
- 星际译王
- Linux并发模型
- poj 3254 Corn Fields