下面我们就开始简单的例子来介绍这个过程,首先打开VS.NET,新建一个Web Site,添加一个新的 Web Form,取名为 VCode.aspx,在其代码文件(VCode.aspx.vb)中添加一个函数generateVCode,此函数用于生成校验码的字符串,具体代码如下:
''' <summary> ''' 产生随机数(包含字母与数字)用于校验码 ''' </summary> ''' <param name="CodeLength"></param> ''' <returns></returns> ''' <remarks></remarks> PrivateFunction generateVCode()Function generateVCode(ByVal CodeLength AsInteger) AsString Dim VCode AsString=String.Empty Dim randObj AsNew Random() Dim c AsInteger=63 For i AsByte=1To CodeLength c = randObj.Next(35) If c >=10Then c +=7 EndIf c +=48 VCode +=Chr(c) Next Return VCode End Function
''' <summary> ''' 产生随机的笔触样式(用于图像的背景) ''' </summary> ''' <returns></returns> ''' <remarks></remarks> PrivateFunction generateHatchStyle()Function generateHatchStyle() As HatchStyle Dim slist AsNew ArrayList ForEach style As HatchStyle In System.Enum.GetValues(GetType(HatchStyle)) slist.Add(style) Next Dim randObj AsNew Random() Dim index AsInteger= randObj.Next(slist.Count -1) ReturnCType(slist(index), HatchStyle) End Function
ProtectedSub Page_Load()Sub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load Dim code AsString= GenerateVCodeImage() Session("VCode") = code End Sub
PrivateFunction generateVCode()Function generateVCode(ByVal CodeLength AsInteger) AsString Dim VCode AsString=String.Empty Dim randObj AsNew Random() Dim c AsInteger=63 For i AsByte=1To CodeLength '是否显示 数字:0, 因为数字0 与字母O 容易混淆 'While (c = 63) ' c = randObj.Next(35) 'End While c = randObj.Next(35) If c >=10Then c +=7 EndIf c +=48 VCode +=Chr(c) Next Return VCode End Function