zoukankan      html  css  js  c++  java
  • asp.net一般处理程序(.ashx)动态生成验证码案例。

    {使用一般处理程序动态生成验证码}

    1.新建WebSite项目,添加一般处理程序命名为  yzm.ashx,添加如下代码: 

    public void ProcessRequest(HttpContext context)
        {

            //将context.Response.ContentType = "text/plain";修改为context.Response.ContentType = "image/JPEG";
            context.Response.ContentType = "image/JPEG";
            using (System.Drawing.Bitmap bitmap =
                 new System.Drawing.Bitmap(150, 50))
            {
                using (System.Drawing.Graphics grapgics =
                    System.Drawing.Graphics.FromImage(bitmap))
                {

                     //测试示例
                    /*grapgics.DrawString("哈喽",
                       new System.Drawing.Font("宋体", 20),
                       System.Drawing.Brushes.Blue
                       , new System.Drawing.PointF(0, 0));

                    System.Drawing.Pen pen = (System.Drawing.Pen)
                        System.Drawing.Pens.Red.Clone();
                    pen.Width = 3;
                    grapgics.DrawEllipse(pen, new System.Drawing.Rectangle(20, 20, 10, 10));

                    bitmap.Save(context.Response.OutputStream,
                        System.Drawing.Imaging.ImageFormat.Jpeg);*/

                    //生成随机数
                    Random random = new Random();
                    int code = random.Next();
                    string strCode = code.ToString();

                    //存session
                    HttpContext.Current.Session["code"] = strCode;
                    grapgics.DrawString(strCode,
                       new System.Drawing.Font("宋体", 20),
                       System.Drawing.Brushes.Blue
                       , new System.Drawing.PointF(0, 0));
                    bitmap.Save(context.Response.OutputStream,
                        System.Drawing.Imaging.ImageFormat.Jpeg);

                }
            }

            //本身就有的
            context.Response.Write("Hello World");
        }

    2.新建webApplication。

    在<div>中添加<img src="yzm.ashx"/>

    添加TextBox 和Button,Button的单击事件如下

      protected void Button1_Click(object sender, EventArgs e)
        {
            string stryzm = Convert.ToString(Session["code"]);
            if (stryzm==TextBox1.Text)
            {
                Response.Write("正确");
            }
            else
            {
                Response.Write("错误");
            }
        }

    3.随后即可在WebApplication中进行测试。

     

  • 相关阅读:
    精《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #4 如何使用Git
    《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #3 如何编写内核模块
    《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #2 如何编译Linux内核
    《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #1 如何获取Linux内核
    [失败]SystemTap和火焰图(Flame Graph)
    yum安装nagois
    yum安装cacti
    笔记本制作centos qcow2格式文件
    【失败】CentOS 6.5安装VNCserver 并开启远程桌面
    Linux 性能分析的前 60 秒
  • 原文地址:https://www.cnblogs.com/fanshaomin/p/3697457.html
Copyright © 2011-2022 走看看