知识大全 .NET下实现数字和字符相混合的验证码

Posted

篇首语:实践是知识的母亲,知识是生活的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .NET下实现数字和字符相混合的验证码相关的知识,希望对你有一定的参考价值。

.NET下实现数字和字符相混合的验证码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  经常在论坛里看到有问怎么实现验证码的帖子 其实关于验证码的文章在CSDN DEV CLUB等网站上都有很多 但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象 当然了 这个是验证码的核心了 但是对很多ASP NET的初学者来说 怎么使用它生成的图象又成了一个问题(论坛有不少问这个的) 这也是我写本文的一个原因    言归正传 关于验证码的原理 我就不多说了 大家可以参见其他文章 文末附有完整的实例代码 里面有详细的注释 你可以跳过解说文字 直接使用 首先 我要简要说说Session和ViewState的用法 因为后面会用到它把数据存储在Session中:Session( key )= test 从Session取值:dim testvalue as string=Session( key )类似的:把数据存储在ViewState中:ViewState( key )= test 从ViewState中取值:dim testvalue as string=ViewState( key )关于ViewState的更详细的资料 你可以参看MSDN的<<ASP NET ViewState 初探>>一文百闻不如一见 有时代码本身就比任何解说更有表现力 所以在此就不对代码解说太多了 本文实现的验证码需要用到两个文件:gif aspx 该文件用于生成验证码ValidateCode aspx 该文件用来测试验证码(即如何使用)下面给出gif aspx的完整代码:<%@ import namespace= System %><%@ import namespace= System io %><%@ import namespace= System Drawing %><%@ import namespace= System Drawing Imaging %><script language= vb runat= server >Sub Page_Load(Sender as object e as eventargs) RndNum是一个自定义函数dim VNum as string=RndNum( )Session( VNum )=VNumValidateCode(VNum)End Sub 生成图象验证码函数Sub ValidateCode(VNum)Dim Img as System Drawing BitmapDim g as GraphicsDim ms as MemoryStreamdim gheight as integer=Int(Len(VNum)* ) gheight为图片宽度 根据字符长度自动更改图片宽度img=new BitMap(Gheight )g=Graphics FromImage(img)g DrawString(VNum (New Font( Arial )) (New SolidBrush(color blue)) ) 在矩形内绘制字串(字串 字体 画笔颜色 左上x 左上y)ms=New MemoryStream()img Save(ms ImageFormat Png)Response ClearContent() 需要输出图象信息 要修改HTTP头Response ContentType= image/Png Response BinaryWrite(ms ToArray())g Dispose()img Dispose()Response End()End Sub 函数名称:RndNum 函数参数:VcodeNum 设定返回随机字符串的位数 函数功能:产生数字和字符混合的随机字符串Function RndNum(VcodeNum)dim Vchar as string= A B C D E F G H I J K L M N O P Q R S T U W X Y Z dim VcArray() as string=split(Vchar ) 将字符串生成数组dim VNum as string= dim i as byteFor i= to VcodeNumRandomizeVNum=VNum & VcArray(Int( *Rnd)) 数组一般从 开始读取 所以这里为 *RndNextReturn VNumEnd Function</script>那么又应该如何使用该文件生成的图象验证码 看这句代码:<asp:Image id= Image runat= server ImageUrl= gif aspx />这就是用来显示验证码的Image控件 你可以把它放在任何你喜欢的地方 下面的给出详细的使用代码 你把它保存为ValidateCode aspx 并把它和gif aspx放在同一目录下 在浏览器中打开ValidateCode aspx 就可以测试它的效果了:<script language= vb Runat= Server >Sub Page_Load(Sender as object e as eventargs)dim VNum as string=Session( VNum )Session Abandon()ViewState( VNum )=VNumEnd Sub 下面的事件代码是用来测试验证码 可以根据需要更改Sub btnSubmit_click(sender as object e as eventargs) 判断输入的验证码与所给是否相同If txtValidateCode text=Cstr(ViewState( VNum )) thenlblShow text= <font color= red >提示:验证通过</font> ElselblShow text= 所填写的验证码与所给的不符 End IfEnd Sub</script><><body><form runat= server ><div align= center ><table width= ><! DWLayoutTable ><tr> <td width= height= > </td><td width= > </td><td width= > </td><td width= > </td><td width= > </td><td width= > </td><td width= > </td></tr><tr> <td height= ></td><td></td><td colspan= valign= top ><asp:label ID= lblShow runat= server >

cha138/Article/program/net/201311/13516

相关参考

知识大全 ASP实现数字字符混合验证码

ASP实现数字字符混合验证码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  先产生一个位数的随机

知识大全 PHP简单验证码类:字母+数字 字体随机扭曲

PHP简单验证码类:字母+数字字体随机扭曲  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  看了一

知识大全 ASP.NET 做验证码

ASP.NET做验证码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  显示验证码的界面前台<

知识大全 ASP.NET验证码技术

ASP.NET验证码技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  验证码技术是目前很多WE

知识大全 ASP.NET验证码(.aspx)

ASP.NET验证码(.aspx)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSy

知识大全 使用kaptcha生成验证码

  kaptcha是一个简单好用的验证码生成工具通过配置可以自己定义验证码大小颜色显示的字符等等      下载kaptcha &

知识大全 ASP.NET开发中的验证码技术

ASP.NET开发中的验证码技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 Asp.net(C#)实现验证码功能两法

Asp.net(C#)实现验证码功能两法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET 实现验证码功能的Web控件

ASP.NET实现验证码功能的Web控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  的设计方

知识大全 JSP验证码代码

JSP验证码代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  生成有个随机数字和杂乱背景的图片