vb.net生成验证码,c#生成验证码

求一个vb.net写的验证码?

建一个YanzhenCard.aspx文件

创新互联是一家集网站建设,尼金平企业网站建设,尼金平品牌网站建设,网站定制,尼金平网站建设报价,网络营销,网络优化,尼金平网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

保留%@ Page Language="VB" AutoEventWireup="false" CodeFile="YanzhenCard.aspx.vb" Inherits="YanzhenCard" %,其余删除

如下是代码:

Imports System.IO

Imports System.Drawing

Partial Class YanzhenCard

Inherits System.Web.UI.Page

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If Not IsPostBack Then

Dim VNum As String = GenerateRandom(4)

Session("VNum") = VNum

ValidateCode(VNum)

End If

End Sub

Private Sub ValidateCode(ByVal VNum As String)

Dim Gheight As Integer = CType((VNum.Length * 15), Integer)

Dim Img As Bitmap = New Bitmap(Gheight, 20) 'Bitmap是用于处理由像素数据定义的图像

Dim g As Graphics = Graphics.FromImage(Img) 'Graphics.FromImage 从指定的Image创建新的Graphics

g.DrawString(VNum, New Font("Arial", 12), New SolidBrush(Color.Red), 5, 0) 'g.DrawString()在指定位置并且用指定的Brush和Font对象绘制指定的文本字符串。

Dim ms As MemoryStream = New MemoryStream '创建其支持存储区为内存的流。

Img.Save(ms, System.Drawing.Imaging.ImageFormat.Png)

Response.ClearContent()

Response.ContentType = "image/PNG"

Response.BinaryWrite(ms.ToArray)

Response.Write(VNum)

g.Dispose()

Img.Dispose()

Response.End()

End Sub

Private Shared constant As Char() = {"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"}

Public Shared Function GenerateRandom(ByVal Length As Integer) As String

Dim newRandom As System.Text.StringBuilder = New System.Text.StringBuilder(26)

Dim rd As Random = New Random

Dim i As Integer = 0

While i Length

newRandom.Append(constant(rd.Next(26)))

System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)

End While

Return newRandom.ToString

End Function

End Class

调用方法:asp:ImageButton ID="Yanzhengma_Card" runat="server" ImageUrl="YanzhenCard.aspx" Height="20px" Width="75px" BorderColor="#6699cc" BorderStyle="Solid" BorderWidth="1px" /

asp.net vb怎样制作图片验证码

实现过程,在需要调用的页面使用image控件调用验证码生成的页面,验证码生成的页面生成验证图片且将验证信息保存至Session中,调用页面中通过Session判断用户是否输入正确。道理是这样,以下看代码:

生成验证码页面:

gif.ASPx

%@importnamespace="System"%

%@importnamespace="System.io"%

%@importnamespace="System.Drawing"%

%@importnamespace="System.Drawing.Imaging"%

scriptlanguage="VB"runat="server"

SubPage_Load(ByValSenderAsObject,ByValeAsEventArgs)

'RndNum为生成随机码的函数,

DimVNumAsString=RndNum(4)'该值为生成验证码的位数

Session("VNum")=VNum'读取Session

ValidateCode(VNum) '根据Session生成图片

EndSub

'--------------------------------------------

'生成图象验证码函数

SubValidateCode(ByValVNum)

DimImgAsSystem.Drawing.Bitmap

DimgAsGraphics

DimmsAsMemoryStream

DimgheightAsInteger=Int(Len(VNum)*14)

'gheight为图片宽度,根据字符长度自动更改图片宽度

Img=NewBitmap(gheight,24)

g=Graphics.FromImage(Img)

g.DrawString(VNum,(NewFont("Arial",12)),(NewSolidBrush(Color.Red)),3,3)'在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)

ms=NewMemoryStream()

Img.Save(ms,ImageFormat.Png)

Response.ClearContent()'需要输出图象信息要修改HTTP头

Response.ContentType="image/Png"

Response.BinaryWrite(ms.ToArray())

g.Dispose()

Img.Dispose()

Response.End()

EndSub

'--------------------------------------------

'函数名称:RndNum

'函数参数:VCodeNum--设定返回随机字符串的位数

'函数功能:产生数字和字符混合的随机字符串

FunctionRndNum(ByValVcodeNum)

DimVcharAsString="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"'需要使用中文验证,可以修改这里和ValidateCode函数中的字体

DimVcArray()AsString=Split(Vchar,",")'将字符串生成数组

DimVNumAsString=""

DimiAsByte

Fori=1ToVcodeNum

Randomize()

VNum=VNumVcArray(Int(35*Rnd()))'数组一般从0开始读取,所以这里为35*Rnd

Next

ReturnVNum

EndFunction

/script

调用页面:

demo.ASPx

scriptlanguage="VB"Runat="Server"

SubPage_Load(Senderasobject,easeventargs)

dimVNumasstring=Session("VNum")

Session.Abandon()

ViewState("VNum")=VNum

EndSub

'下面的事件代码是用来测试验证码

SubbtnSubmit_click(senderasobject,easeventargs)

'判断输入的验证码与所给是否相同

IftxtValidateCode.Text=CStr(ViewState("VNum"))Then

ensonShow.text="fontcolor='red'提示:验证通过/font"

Else

ensonShow.text="所填写的验证码与所给的不符"

EndIf

EndSub

/script

html

body

formrunat="server"

divalign="center"

tablewidth="750"

tr

tdvalign="middle"验证码:/td

!--调用验证图片生成页---

tdvalign="top"asp:Imageid="Image1"runat="server"ImageUrl="gif.aspx"//td

/tr

tr

tdvalign="top"输入验证码:/td

tdvalign="top"asp:textboxID="txtValidateCode"runat="server"TextMode="SingleLine"/fontcolor="#FF0000"size="2"*区分大小写/font/td

/tr

tr

tdcolspan="2"valign="top"align="center"asp:buttonID="btnSubmit"runat="server"Text="验证"onclick="btnSubmit_click"/

asp:labelID="ensonShow"runat="server"/

/td

/tr

/table

/div

/form

/body

/html

vb.net 做出类似这样的验证码 白色字体,字形扭曲

这个是可以使用api来做的。图像处理之类的函数。

另外,还有一种方法是将所有的字符和数字做成不同的小图片进行拼接而成的一个字符串序列;

小图片要自己去做;效果就可以任意展现了。

vb.net 怎么将网页验证码显示在窗体上

Dim CtrlRange As Object

On Error Resume Next

Do

Err.Clear()

CtrlRange = Ie.Document.Body.DomElement.createControlRange()

CtrlRange.Add(Ie.Document.DomDocument.GetElementById("verifypic"))

CtrlRange.execCommand("Copy") '获取验证码

If Clipboard.ContainsData(DataFormats.Bitmap) Then

PictureBox1.Image = Clipboard.GetData(DataFormats.Bitmap) '在Picture1控件上显示

End If

If Err.Number 0 Then WaitingMS(100) ‘延时

Loop While Err.Number 0

以前找的 vbnet里也可以用

VB NET 中怎样实现动态验证码

Imports System

Imports System.Data

Imports System.Configuration

Imports System.Collections

Imports System.Web

Imports System.Web.Security

Imports System.Web.UI

Imports System.Web.UI.WebControls

Imports System.Web.UI.WebControls.WebParts

Imports System.Web.UI.HtmlControls

Imports System.Drawing

Partial Public Class VerifyCode

Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

Session("VerifyCode") = MakeValidateCode()

CreateImage(Session("VerifyCode").ToString())

End Sub

Private Sub CreateImage(ByVal checkCode As String)

Dim iwidth As Integer = CInt(checkCode.Length * 12) + 10

Dim image As New System.Drawing.Bitmap(iwidth, 25)

Dim g As Graphics = Graphics.FromImage(image)

g.Clear(Color.White)

'定义颜色

Dim c() As Color = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple }

'定义字体

Dim font() As String = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" }

Dim rand As New Random()

'随机输出噪点

For i As Integer = 0 To 4

Dim x As Integer = rand.Next(image.Width)

Dim y As Integer = rand.Next(image.Height)

g.DrawRectangle(New Pen(Color.LightGray, 0), x, y, 1, 1)

Next i

'输出不同字体和颜色的验证码字符

For i As Integer = 0 To checkCode.Length - 1

Dim cindex As Integer = rand.Next(7)

Dim findex As Integer = rand.Next(5)

Dim f As Font = New System.Drawing.Font("宋体", 12, System.Drawing.FontStyle.Regular)

Dim b As Brush = New System.Drawing.SolidBrush(c(cindex))

Dim ii As Integer = 4

If (i + 1) Mod 2 = 0 Then

ii = 2

End If

g.DrawString(checkCode.Substring(i, 1), f, b, 3 + (i * 12), ii)

Next i

'画一个边框

g.DrawRectangle(New Pen(Color.Black, 0), 0, 0, image.Width - 1, image.Height - 1)

'输出到浏览器

Dim ms As New System.IO.MemoryStream()

image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)

Response.ClearContent()

Response.ContentType = "image/Jpeg"

Response.BinaryWrite(ms.ToArray())

g.Dispose()

image.Dispose()

End Sub

Private Function MakeValidateCode() As String

'0 i o

Dim s() As Char = { "0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c, "A"c, "B"c, "C"c, "D"c, "E"c, "F"c, "G"c, "J"c, "K"c, "L"c, "M"c, "N"c, "P"c, "Q"c, "R"c, "S"c, "T"c, "U"c, "V"c, "W"c, "X"c, "Y"c, "Z"c }

Dim num As String = ""

Dim r As New Random()

For i As Integer = 0 To 3

num = s(r.Next(0, s.Length - 1)).ToString()

Next i

Return num

End Function

End Class


标题名称:vb.net生成验证码,c#生成验证码
网址分享:http://cdiso.cn/article/hohige.html

其他资讯