您现在的位置是:首页 >

c语言删去字符串特定字符 在ASP.NET下实现数字和字符相混合的验证码

火烧 2021-05-10 12:49:47 1057
在ASP.NET下实现数字和字符相混合的验证码   经常在论坛里看到有问怎么实现验证码的帖子 其实关于验证码的文章在CSDN DEV CLUB等网站上都有很多 但是很多文章只讲诉了如何输出一个随机生成

在ASP.NET下实现数字和字符相混合的验证码  

  经常在论坛里看到有问怎么实现验证码的帖子 其实关于验证码的文章在CSDN DEV CLUB等网站上都有很多 但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象 当然了 这个是验证码的核心了 但是对很多ASP NET的初学者来说 怎么使用它生成的图象又成了一个问题(论坛有不少问这个的) 这也是我写本文的一个原因

  言归正传 关于验证码的原理 我就不多说了 大家可以参见其他文章 文末附有完整的实例代码 里面有详细的注释 你可以跳过解说文字 直接使用

  首先 我要简要说说Session和ViewState的用法 因为后面会用到它

  把数据存储在Session中:Session( key )= test

  从Session取值:dim testvalue as string=Session( key )

  类似的:

  把数据存储在ViewState中:ViewState( key )= test

c语言删去字符串特定字符 在ASP.NET下实现数字和字符相混合的验证码

  从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 )=VNum    ValidateCode(VNum) End Sub   生成图象验证码函数 Sub ValidateCode(VNum)   Dim Img as System Drawing Bitmap   Dim g as Graphics   Dim ms as MemoryStream   dim 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 byte    For i= to VcodeNum      Randomize      VNum=VNum & VcArray(Int( *Rnd)) 数组一般从 开始读取 所以这里为 *Rnd    Next    Return VNum  End Function</script>

lishixinzhi/Article/program/net/201311/13865  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码