.net实现验证码VB版

该博客介绍了作者在开始写.NET时,参照网络经验修改实现的验证码功能。添加了动态调整字符颜色的特性,给出了新建getcode.aspx和login.aspx文件的内容,还展示了class类文件中生成验证码、随机字符及随机颜色的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

恩。自己开始写.net的时候写的。参照了一些网络上前辈们的经验,自己修改了部分。

加了可以动态调整字符颜色的功能。

调用方法

新建文件getcode.aspx

内容如下:

<%@Page Language=vb Inherits="WanerSoftCode.Code.ExtraCode" EnableSessionState="true" %>

新建文件login.aspx,其中调用验证码的部分为:

<asp:Image id="Image1" runat="server" ImageUrl="getcode.aspx">

class类文件内容

Imports System
Imports System.io
Imports System.Drawing
Imports System.Drawing.Imaging
Imports Microsoft.VisualBasic

Namespace WanerSoftCode.Code

    Public Class ExtraCode
        Inherits System.Web.UI.Page
        Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            Dim ExtraCode As String = RndNum(4)
            Session("regma") = LCase(ExtraCode)
            GetExtraCode(ExtraCode)
        End Sub

        Sub GetExtraCode(ByVal ExtraCode)
            Dim img As System.drawing.Bitmap
            Dim g As Graphics
            Dim ms As MemoryStream
            Dim gheight As Integer = Int(Len(ExtraCode) * 11.5)
            img = New Bitmap(gheight, 17)
            g = Graphics.FromImage(img)
            g.DrawString(Left(ExtraCode, 1), (New Font("BatangChe", 10)), (New SolidBrush(ColorTranslator.FromHtml(getColor()))), 3, 1.5)
            g.DrawString(Right(Left(ExtraCode, 2), 1), (New Font("BatangChe", 10)), (New SolidBrush(ColorTranslator.FromHtml(getColor()))), 12, 1.5)
            g.DrawString(Left(Right(ExtraCode, 2), 1), (New Font("BatangChe", 10)), (New SolidBrush(ColorTranslator.FromHtml(getColor()))), 21, 1.5)
            g.DrawString(Right(ExtraCode, 1), (New Font("BatangChe", 10)), (New SolidBrush(ColorTranslator.FromHtml(getColor()))), 30, 1.5)
            ms = New MemoryStream
            img.Save(ms, ImageFormat.Png)
            Response.ClearContent()
            Response.ContentType = "image/png"
            Response.BinaryWrite(ms.ToArray())
            g.Dispose()
            img.Dispose()
            Response.End()
        End Sub

        Private Function RndNum(ByVal VcodeNum) As String
            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,V,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()))
            Next
            Return VNum
        End Function

        Private Function getColor() As String
            Dim font_array(6) As String
            font_array(0) = "#FF0000"
            font_array(1) = "#0000FF"
            font_array(2) = "#FF6600"
            font_array(3) = "#000000"
            font_array(4) = "#339900"
            font_array(5) = "#FF00FF"
            Return font_array(Int(6 * Rnd()))
        End Function
    End Class

End Namespace

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值