.net实现网页验证码

项目有两个页面,default.aspx和VerifyCode.aspx,详细代码如下

Default.aspx页面

<body>
    <form id="form1" runat="server">
    <div align="center">
    <h3>图片验证码的使用</h3>
        <asp:TextBox ID="txtVerifyCode" runat="server"></asp:TextBox>

        <asp:Button ID="Button1" runat="server" Text="Button" οnclick="Button1_Click" />
        
        <img alt="看不清?点击跟换" src="VerifyCode.aspx" οnclick="this.src=this.src+'?'" />
    </div>
    </form>
</body>
Default.aspx.cs页面
protected void Button1_Click(object sender, EventArgs e)
    {
        if (String.Compare(Session["CheckCode"].ToString(), this.txtVerifyCode.Text.ToString().Trim(), true) != 0)
        {
            Response.Write("<script languange='javascript'>alert('校验码错误!');</script>");
            return;
        }
        else
        {
            Response.Write("<script languange='javascript'>alert('校验码正确!');</script>");
            return;
        }
    }

VerifyCode.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
        Random x = new Random();
        decimal c = (decimal)x.NextDouble() * 10000;
        string code = decimal.Round(c, 0).ToString();
        System.Drawing.Bitmap image = new System.Drawing.Bitmap(52,20);
        Graphics g = Graphics.FromImage(image);
        g.Clear(Color.White);
        Font f;
        Brush b;
        f = new System.Drawing.Font("Freestyle Script", 11, System.Drawing.FontStyle.Italic);
        b = new System.Drawing.SolidBrush(Color.BlueViolet);

        for (int i = 0; i < 20; i++)
        {
            g.DrawLine(new Pen(Color.Gainsboro, 0), new Point(0, i), new Point(54, i));
        }
        g.DrawString(code,f,b,8,2);
        g.DrawRectangle(new Pen(Color.Gainsboro, 0), 0, 0, image.Width - 1, image.Height - 1);
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
        Response.ClearContent();
        Response.ContentType = "image/Jpeg";
        Response.BinaryWrite(ms.GetBuffer());
        g.Dispose();
        ms.Close();
        ms = null;
        Session["CheckCode"] = code.ToUpper();
    }















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值