zoukankan      html  css  js  c++  java
  • Asp.net:生成验证码

    1 添加一般处理程序 ashx

    <%@ WebHandler Language="C#" Class="Handler" %>

    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Text;
    using System.Web;
    using System.Web.SessionState;

    public class Handler : IHttpHandler, IRequiresSessionState {

    public void ProcessRequest(HttpContext context) {
    context.Response.ContentType
    = "image/gif";
    //建立Bitmap对象,绘图
    Bitmap basemap = new Bitmap(200, 60);
    Graphics graph
    = Graphics.FromImage(basemap);
    graph.FillRectangle(
    new SolidBrush(Color.White), 0, 0, 200, 60);
    Font font
    = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel);
    Random r
    = new Random();
    string letters = "ABCDEFGHIJKLMNPQRSTUVWXYZ";
    string letter;
    StringBuilder s
    = new StringBuilder();

    //添加随机的五个字母
    for (int x = 0; x < 5; x++) {
    letter
    = letters.Substring(r.Next(0, letters.Length - 1), 1);
    s.Append(letter);
    graph.DrawString(letter, font,
    new SolidBrush(Color.Black), x * 38, r.Next(0, 15));
    }

    //混淆背景
    Pen linePen = new Pen(new SolidBrush(Color.Black), 2);
    for (int x = 0; x < 6; x++)
    graph.DrawLine(linePen,
    new Point(r.Next(0, 199), r.Next(0, 59)), new Point(r.Next(0, 199), r.Next(0, 59)));

    //将图片保存到输出流中
    basemap.Save(context.Response.OutputStream, ImageFormat.Gif);
    context.Session[
    "CheckCode"] = s.ToString(); //如果没有实现IRequiresSessionState,则这里会出错,也无法生成图片
    context.Response.End();
    }

    public bool IsReusable {
    get { return true; }
    }
    }

    2 引用

    新建 imageCode.aspx 其中 html

    <img src="Handler.ashx" alt="图片验证码" />
  • 相关阅读:
    go语言教程零基础入门到精通
    php探针文件内容
    一篇文章揭穿创业公司的套路
    Google资深工程师深度讲解Go语言面向接口(五)
    完全解析<atlalloc.h>
    巧妙的Section — — 剖析ATL OBJECT_MAP的自动建立
    ATL中的各种CriticalSection
    C++中的INL
    如何剖析一个类
    ATL线程模型解析
  • 原文地址:https://www.cnblogs.com/zjwei55/p/2151251.html
Copyright © 2011-2022 走看看