asp.net(c#)生成验证码

本文介绍了一个简单的验证码生成方法,包括图片背景及字符绘制,并详细解释了如何在ASP.NET环境中使用C#实现验证码的生成和验证过程。

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

首先,登陆界面需要显示这个图片,那么,就有:

<font color="#FF0000">请输入</font> <img src="Validate.aspx" alt="" />

这个来显示图片,下面是Validate.aspx:

<%@ Page Language="C#" %>
<%@ import namespace="System"%>
<%@ import namespace="System.IO"%>
<%@ import namespace="System.Drawing"%>
<%@ import namespace="System.Drawing.Imaging"%>
<%@ import namespace="System.Drawing.Drawing2D"%>

<script runat="server">
private Bitmap validateimage; //定义全局变量
private Graphics g;
public void Page_Load(object Sender,EventArgs e)
{
Response.BufferOutput = true; //特别注意
Response.Cache.SetExpires(DateTime.Now.AddMilliseconds(-1));//特别注意,设置catch超时
Response.Cache.SetCacheability(HttpCacheability.NoCache);//特别注意
Response.AppendHeader("Pragma", "No-Cache"); //特别注意
string VNum =MakeValidateCode( );
Session["VNum"]=VNum;//取得验证码,以便后来验证
ValidateCode(VNum);
}
public void ValidateCode(string VNum)
{
validateimage = new Bitmap(60, 20, PixelFormat.Format24bppRgb);
g = Graphics.FromImage(validateimage);
g.FillRectangle(new LinearGradientBrush(new Point(0,0), new Point(110,20), Color.FromArgb(240,255,255,255),Color.FromArgb(240,255,255,255)),0,0,200,200); //矩形框
g.DrawString(VNum, new Font("arial",11),new SolidBrush(Color.Red),new PointF(6,0));//字体/颜色
g.Save();
MemoryStream ms=new MemoryStream(); //使用内在流
validateimage.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType="image/bmp";
Response.BinaryWrite(ms.ToArray());
Response.End();
}

string MakeValidateCode()
{
char[] s = new char[]{'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'};//枚举数组
string num = "";
Random r = new Random();
for(int i = 0; i < 5; i++)
{
num += s[r.Next(0, s.Length)].ToString();
}
return num;
}
</script>
,那显示出来之后,用户输入到文本框,提交,就需要检验一下验证码是否正确,在login.aspx.cs中:

if (checkcode == Session["VNum"].ToString() || Session["VNum"].ToString() == null) { }//注意Session["VNum"].ToString(),必须加上ToString(),因//为Session["VNum"]是对象。
//要做的事情
else
{
Message.Text = "验证码错误或为空!";
founderr = true;
}

这样,就完成了 验证码的生成以及验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值