您的位置:首页 > 其它

做登陆页面的随机验证码

2006-09-13 23:38 405 查看
先放上这页代码:(radamdata.aspx是用来产生验证码图片用的)

[align=left]Imports System.Drawing[/align]
[align=left]Imports System.IO[/align]
[align=left]Partial Class test2[/align]
[align=left] Inherits System.Web.UI.Page[/align]
[align=left] [/align]
[align=left] Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load[/align]
[align=left] ' 在此处放置用户代码以初始化页面[/align]
[align=left] If Not Page.IsPostBack Then[/align]
[align=left] Me.GenImg(Me.GenCode(4))[/align]
[align=left] [/align]
[align=left] End If[/align]
[align=left] End Sub[/align]
[align=left] [/align]
[align=left] Private Function GenCode(ByVal num As Integer) As String[/align]
[align=left] Dim [source] As String() = {"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"}[/align]
[align=left] Dim code As String = ""[/align]
[align=left] Dim rd As New Random()[/align]
[align=left] Dim i As Integer[/align]
[align=left] For i = 0 To num - 1[/align]
[align=left] code += [source](rd.Next(0, [source].Length))[/align]
[align=left] Next i[/align]
[align=left] Return code[/align]
[align=left] End Function 'GenCode[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] '生成图片[/align]
[align=left] Private Sub GenImg(ByVal code As String)[/align]
[align=left] Dim myPalette As New Bitmap(60, 20) '定义一个画板[/align]
[align=left] Dim gh As Graphics = Graphics.FromImage(myPalette) '在画板上定义绘图的实例[/align]
[align=left] Dim rc As New Rectangle(0, 0, 60, 20) '定义一个矩形[/align]
[align=left] gh.FillRectangle(New SolidBrush(Color.Silver), rc) '填充矩形[/align]
[align=left] gh.DrawString(code, New Font("宋体", 16), New SolidBrush(Color.Gray), rc) '在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)[/align]
[align=left] myPalette.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg) '将图片显示出来[/align]
[align=left] '下面这些也是将图片显示出来的![/align]
[align=left] 'Dim ms As MemoryStream = New MemoryStream[/align]
[align=left] 'myPalette.Save(ms, Imaging.ImageFormat.Jpeg)[/align]
[align=left] ' Response.ClearContent()[/align]
[align=left] ' Response.ContentType = "image/jpeg"[/align]
[align=left] ' Response.BinaryWrite(ms.ToArray)[/align]
[align=left] Session("ValidateCode") = code '将字符串保存到Session中,以便需要时进行验证[/align]
[align=left] gh.Dispose()[/align]
[align=left] myPalette.Dispose()[/align]
[align=left] End Sub 'GenImg[/align]
[align=left] [/align]
[align=left] [/align]
End Class
..................................................................................................................................................................

放上调用radamdata.aspx的radamindex.aspx的代码

[align=left] Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load[/align]
[align=left] [/align]
[align=left] End Sub[/align]
[align=left] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click[/align]
[align=left] If TextBox1.Text = Session("ValidateCode") Then[/align]
[align=left] Label1.Text = "haha,你成功了!!!"[/align]
[align=left] Else[/align]
[align=left] Label1.Text = "不对哦"[/align]
[align=left] End If[/align]
[align=left] End Sub[/align]
End Class

然后在randamindex.aspx上放一个image控件,使他的图片连接为randamdata.aspx就行了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: