验证码

Posted 天晴微笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证码相关的知识,希望对你有一定的参考价值。

首先 制作一个验证码界面    .aspx

后台代码

技术分享
 protected void Page_Load(object sender, EventArgs e)
    {
        List<Color> clist = new List<Color>();
        clist.Add(Color.Red);
        clist.Add(Color.Firebrick);
        clist.Add(Color.LawnGreen);
        clist.Add(Color.Goldenrod);
        clist.Add(Color.Cyan);
        clist.Add(Color.DarkSlateBlue);
        clist.Add(Color.Indigo);
        Random r = new Random();
        string s = "";
        string all = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmeopqrstuvwxyz0123456789";
        for (int i = 0; i < 4; i++)
        {
            s += all.Substring(r.Next(0, all.Length), 1);
        }

        Session["YZM"] = s;

        Bitmap img = new Bitmap(120, 60);

        Graphics g2 = Graphics.FromImage(img);
        Brush b2 = new SolidBrush(clist[r.Next(0, clist.Count)]);
        g2.FillRectangle(b2, 0, 0, 120, 60);

        Graphics g = Graphics.FromImage(img);
        Font f = new Font("微软雅黑", 30);
        Brush b = new SolidBrush(Color.Red);

        g.DrawString(s, f, b, new PointF(0, 0));


        for (int i = 0; i < 8; i++)
        {
            Graphics g3 = Graphics.FromImage(img);
            Pen p3 = new Pen(new SolidBrush(clist[r.Next(0, clist.Count)]), r.Next(2, 5));
            g3.DrawLine(p3, new Point(r.Next(0, 120), r.Next(0, 60)), new Point(r.Next(0, 120), r.Next(0, 60)));
        }


        img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);



    }
View Code

要使用的界面    .aspx

使用的控件

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<img id="yzm1" src="YZM.aspx" /><br />
<asp:Button ID="Button1" runat="server" Text="验证" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

 

JS 代码

<script type="text/javascript">
var a = 0;
document.getElementById("yzm1").onclick = function () {
this.src = "yzm.aspx?a=" + a;
a++;
}

</script>

 

后台空内容对错

 Button1.Click += Button1_Click;


void Button1_Click(object sender, EventArgs e)
{
Label2.Text = Session["YZM"].ToString();
if (TextBox1.Text == Session["YZM"].ToString())
Label1.Text = "正确!!!";
else
Label1.Text = "错误!!!!!!!";
}


















以上是关于验证码的主要内容,如果未能解决你的问题,请参考以下文章

git动态验证码

Android SMS Verification API 结果码始终为 0

爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别

JavaScript 有用的代码片段和 trick

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

如何用JS代码判断验证码输入是不是正确