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

生成验证码,无非是把数字、字母或汉字混合在一起,生成图片,然后输出。这里用的是数字和字母。

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

<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));//特别注意
     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;
            }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值