验证代码的生成

来源:互联网 发布:mysql trigger 编辑:程序博客网 时间:2024/05/16 09:06

验证代码的生成

public partial class RandomCode : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string Num=CreateNum(6);
            HttpCookie code = new HttpCookie("code", Num);
            Response.Cookies.Add(code);

            //Label1.Text = Num;
            CreateCode(Num);
           
           
        }


        //生成随机数
        private string CreateNum(int VcodeNum)
        {
            String Vchar = "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[] VcArray = Vchar.Split(new char[]{','});
            string ReturnNum="";

            Random r = new Random();
            for (int i = 0; i < VcodeNum; i++)
            {              
                int j = r.Next(35);
                char c = Convert.ToChar(VcArray[i]);
                ReturnNum += VcArray[j].ToString();            
            }
            return ReturnNum;
        }

        //生成随机数的图片
        private void CreateCode(string RndNum)
        {
            Bitmap Img = null;
            Graphics g = null;
            MemoryStream ms = new MemoryStream();
            int gheight = RndNum.Length * 12;//这是随机图片的高度
            Img = new Bitmap(gheight,25);//创建一个图片
            g = Graphics.FromImage(Img);

            //设置背景
            g.Clear(Color.Wheat);

            //文字字体设置
            Font f = new Font("Arial Black", 10);

            //文字颜色,要用s写出字来
            SolidBrush s = new SolidBrush(Color.Green);

            g.DrawString(RndNum, f, s, 3,3);

            Img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);


            Response.ClearContent();
            // Response.ContentType = "images/Jpeg";//假如只是设置这里的话页面会无法显示,所有后来我只能用下面的Response.AddHeader()方法了
            Response.AddHeader("ContentType", "images/Jpeg");
            Response.BinaryWrite(ms.ToArray());
            g.Dispose();
            Img.Dispose();
            Response.End();

        }
    }

验证时的代码:

protected void Validate_Click(object sender, EventArgs e)
        {
            HttpCookie code = Request.Cookies["code"];
            if (TextBox1.Text.Trim() == code.Value.ToString())
            {
                Response.Write(@"<script>alert('succes!');</script>");
            }
        }

0 0