今天在公司忙完工作后总结验证码的实现,验证码在我们日常填写表单时很常见的。我从两个方面的实现.net下验证码的实现过程。希望能够给初学者带来帮助,也希望能起到抛砖引玉的作用: 一.通过自己写代码实现(牵涉到GDI+相关知识) 1.新建一个专门生成验证码的页面如:ValidateCode.aspx 2.在该页面的Page_Load事件里实现动态随机生成验证码图片:
private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { //RndNum是一个自定义函数 //这里的数字4代表显示的是4位的验证字符串! //string VNum=RndNum(4); string VNum=this.GenerateRandom(4); Session["VNum"]=VNum; this.Validate_Code(VNum);
} }private void Validate_Code(string VNum) { int Gheight=(int)(VNum.Length*11.5); //Gheight为图片的宽度,根据字符串长度自动改变图片宽度 System.Drawing.Bitmap Img=new Bitmap(Gheight,20); Graphics g=Graphics.FromImage(Img); g.DrawString(VNum,new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3); //在矩形内绘制字串(字串,字体,画笔颜色,左上x,左上y)
System.IO.MemoryStream ms=new System.IO.MemoryStream(); Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png); Response.ClearContent();//需要输出图象信息 要修改HTTP头 Response.ContentType="image/Png"; Response.BinaryWrite(ms.ToArray()); g.Dispose(); Img.Dispose(); Response.End(); }
public string GenerateRandom(int length) { System.Text.StringBuilder newRandom=new System.Text.StringBuilder(62); Random rd=new Random(); for(int i=0;i<length;i++) { newRandom.Append(constant[rd.Next(62)]); } return newRandom.ToString(); } private static char[] constant={'0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; 3.如果要在页面a.aspx生成验证码,则在该页面添加一个图片控件,假设命名为:Image1,然后在page_Load事件中写如下代码: //Image.ImageURL = "ValidateCode.aspx"; 这样就可以生成验证码了,ValidateCode.aspx页面可以随便放在哪里,不过要注意Image1.ImageURL 要写对,同级可以直接写ValidateCode.aspx,上一级写../ValidateCode.aspx,很方便吧。 二.验证码控件实现 用验证码实现就更简单了。通过下载点击下载就可以得到一个dll文件和相关的帮助文档. 通过把下载下来的dll文件添加到工具箱中变成自定义控件的过程拖到页面上来就可以实现验证码了。当然还可以设置有关属性。如字体的类型。表现形式,位置,长度都可以设置,具体可以参见下载下来的帮助文档。很全面。
|
相关推荐
ASP.NET实现验证码!!简单!易懂!
简单实现一个复杂的验证码 可以实现背景随机、字体随机、中英文数字随机,点击验证码可以实现无刷新更换 作者:51aspx
资源名:asp.net短信登录验证码和图片验证程序源码 资源类型:程序源代码 源码说明: 1.实现了验证码倒计时的功能 1.以下验证码例子采用的是先获取手机号文字验证码,如果文字验证码收不到,将采用语音播放验证码的...
语音验证码源码、简单实现一个复杂的验证码、简单的验证码实例(全部源代码)讲解很清楚、51aspx无刷新仿google波形扭曲彩色Asp.net验证码、51gdi、validCode_51aspx、ChineseVerifyCode、Asp.net简单验证码源码
Asp.net简单实现一个复杂的验证码Asp.net简单实现一个复杂的验证码
用ASP.NET做的简易留言板(带验证码)
拖动滑块实现验证码,腾讯验证码接口,修改SecretId,SecretKey值可以使用
很方便 , 创建一个img控件 ,将img控件的 src 属性设置成 这个文件的路径 就能实现验证码功能. 如: Session["CheckCode"] 就是验证码的Session
验证码的作用: 有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,我们利用比较简易的方式实现了这个功能。该功能可以自己需要设置验证码个数,验证码是被模糊化的字母和数字组成的...
给大家介绍了asp.net中画图形验证码的实现方法,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下
首先是新建一个验证码页面 ValidateCode.aspx 定义变量 这样有利于后期的修改了 代码如下: private int codeLen = 4;//验证码长度 private int fineness = 85;//图片清晰度 private int imgWidth = 48;//图片宽度 ...
记录自己的学习,参考了网上各位大佬的技术,往往在登录的时候需要使用到验证码来进行简单的一个校验,这边使用在.net core上进行生成图片二维码 思路很简单=》 生成一个随机数-》保存到服务端Session-》生成随机码...
仿EasyCaptcha和SimpleCaptcha,基于.Net Standard 2.0 的图形验证码模块,LazyCaptcha v2(基于SkiaSharp),本文采用的是在.NET 6下进行Demo演示,目前演示的是项目中常用的做法。
一个简单的验证码技术,和大家共享!一个页面实现验证码,一个页面调用,常在登录、注册时使用!