ASP.NET----验证码模块

新建一个页面VerifyCode.aspx

.cs中的代码:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Drawing;


public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["VerifyCode"] = MakeValidateCode();

        CreateImage(Session["VerifyCode"].ToString());

    }
    private void CreateImage(string checkCode)
    {

        int iwidth = (int)(checkCode.Length * 12) + 10;

        System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 25);

        Graphics g = Graphics.FromImage(image);

        g.Clear(Color.White);

        //定义颜色

        Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };

        //定义字体

        string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" };

        Random rand = new Random();

        //随机输出噪点

        for (int i = 0; i < 5; i++)
        {

            int x = rand.Next(image.Width);

            int y = rand.Next(image.Height);

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

        }



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

        for (int i = 0; i < checkCode.Length; i++)
        {

            int cindex = rand.Next(7);

            int findex = rand.Next(5);



            Font f = new System.Drawing.Font("宋体", 12, System.Drawing.FontStyle.Regular);

            Brush b = new System.Drawing.SolidBrush(c[cindex]);

            int ii = 4;

            if ((i + 1) % 2 == 0)
            {

                ii = 2;

            }

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

        }

        //画一个边框

        g.DrawRectangle(new Pen(Color.Black, 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.ToArray());

        g.Dispose();

        image.Dispose();

    }





    private string MakeValidateCode()
    {

        //0 i o

        char[] s = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };

        string num = "";

        Random r = new Random();

        for (int i = 0; i < 4; i++)
        {

            num += s[r.Next(0, s.Length - 1)].ToString();

        }

        return num;

    }

}




调用页面:

.aspx代码:

    <script type="text/javascript">   // JScript 文件   //刷新显示图片 function setVerifyCode(){     var nameListDiv = document.getElementById("verifyPic");     nameListDiv.src = "VerifyCode.aspx?SID=" + Math.random(); } //加载的时候显示验证码 window.onload = function(){ setVerifyCode(); } </script> 验 证 码: <td style="text-align:center; height: 28px;" align="center"> <asp:TextBox ID="TextBox1" runat="server" Width="70px"></asp:TextBox><img src="" alt="点击更换..." width="80" height="23" id="verifyPic" onclick="setVerifyCode();" style="position: relative; top: 5px" /></td>




.cs中代码:

 if (Session["VerifyCode"] != null)
            {
                if (this.TextBox1.Text.ToUpper() != Session["VerifyCode"].ToString().ToUpper())
                {
                    Response.Write(CC.MessageBox("验证码输入有误,请重新输入!", "Default.aspx"));
                }


                else
                {
                    //调用CommonClass类中的checkLogin方法,判断用户是否为合法用户
                    int IntUserIn = CC.checkuser(this.Tusername.Text.Trim(), CC.MD5(this.Tuserpwd.Text.Trim()));
                    if (IntUserIn > 0)
                    {
                        Session["UserName"] = this.Tusername.Text.Trim().ToUpper();


                        Response.Write(CC.MessageBox("登录成功!", "Admin/Menu.aspx?admin=" + this.Tusername.Text.Trim() + ""));


                    }
                    else
                    {
                        //该用户不是合法用户,调用CommonClass类中的MassageBox方法,弹出提示框
                        Response.Write(CC.MessageBox("您输入的用户名或密码错误,请重新输入!", "Default.aspx"));


                    }


                }
            }
            else
            {
                Response.Write(CC.MessageBox("验证码不能为空!", "Default.aspx"));
            }


你可能感兴趣的:(js,验证码,生成验证码)