|
日历
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 28 | 29 | 30 | 31 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | 25 | 26 | 27 | 28 | 29 | 30 | 1 | | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|
统计
- 随笔 - 23
- 文章 - 3
- 评论 - 20
- 引用 - 0
导航
常用链接
随笔分类(7)
随笔档案(23)
文章分类(3)
文章档案(3)
相册
++++++
博客手拉手
链链看
新网
友情链接
最近常去的网站
积分与排名
最新评论
阅读排行榜
评论排行榜
推荐排行榜
|
今天看到一篇生成验证码的文章,试了一下,出来的效果图为 ,出来的图片背景比较单一,但作者代码写得比较清楚易懂,文章链接: Asp.Net生成验证码(vb) gif.aspx 该文件用于生成验证码 validatecode.aspx 该文件用来测试验证码的使用 gif.aspx的完整代码
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
 Public Class gifClass gif
Inherits System.Web.UI.Page

 Web 窗体设计器生成的代码#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent()

End Sub

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

 Private Sub Page_Init()Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

 Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
'rndnum是一个自定义函数
Dim vnum As String = rndnum(4)
Session("vnum") = vnum
validatecode(vnum)
End Sub
 Sub validatecode()Sub validatecode(ByVal vnum)
Dim img As System.drawing.Bitmap
Dim g As Graphics
Dim ms As MemoryStream
Dim gheight As Integer = Int(Len(vnum) * 11.5)
'gheight为图片宽度,根据字符长度自动更改图片宽度
img = New Bitmap(gheight, 20)
g = Graphics.FromImage(img)
g.DrawString(vnum, (New Font("arial", 10)), (New SolidBrush(Color.Blue)), 3, 3) '在矩形内绘制字串(字串,字体,画笔颜色,左上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
 Function rndnum()Function rndnum(ByVal vcodenum)
Dim vchar 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,w,x,y,z"
Dim vcarray() As String = Split(vchar, ",") '将字符串生成数组
Dim vnum As String = ""
Dim i As Byte
For i = 1 To vcodenum
Randomize()
vnum = vnum & vcarray(Int(35 * Rnd())) '数组一般从0开始读取,所以这里为35*rnd
Next
Return vnum
End Function
End Class

在另一个页面添加一个image控件,将image连接到gif.aspx,浏览就可以看到效果(如果该页面和gif.aspx不在同一目录下,则要注意imageurl的链接) <asp:image id="image1" runat="server" imageurl="gif.aspx" /> validatecode.aspx.vb的代码
 Public Class validatecodeClass validatecode
Inherits System.Web.UI.Page

 Web 窗体设计器生成的代码#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()Sub InitializeComponent()

End Sub
Protected WithEvents lblshow As System.Web.UI.WebControls.Label
Protected WithEvents Image2 As System.Web.UI.WebControls.Image
Protected WithEvents txtvalidatecode As System.Web.UI.WebControls.TextBox
Protected WithEvents btnsubmit As System.Web.UI.WebControls.Button

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。
Private designerPlaceholderDeclaration As System.Object

 Private Sub Page_Init()Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

 Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim vnum As String = Session("vnum")
Session.Abandon()
viewstate("vnum") = vnum

End Sub
 Sub btnsubmit_click()Sub btnsubmit_click(ByVal sender As Object, ByVal e As EventArgs)
'判断输入的验证码与所给是否相同
If txtvalidatecode.text = CStr(viewstate("vnum")) Then
lblshow.text = "<font color='red'>提示:验证通过</font>"
Else
lblshow.text = "所填写的验证码与所给的不符"
End If
End Sub

End Class
validatecode.aspx中html代码
<form id="Form1" method="post" runat="server">
输入验证码:
<asp:textbox id="txtvalidatecode" runat="server" Width="128px" textmode="singleline"></asp:textbox>
<asp:image id="Image2" runat="server" Width="60px" Height="26px" imageurl="gif.aspx"></asp:image>
<asp:button id="btnsubmit" onclick="btnsubmit_click" runat="server" text="比较"></asp:button>
<asp:label id="lblshow" runat="server"></asp:label><BR>
</FONT></TD>
</form>
|