WebForm 验证码

添加一般处理程序

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

using System;
using System.Web;
using System.Web.SessionState;//IRequiresSessionState的命名空间
using System.Drawing;

public class yanzheng : IHttpHandler, IRequiresSessionState{

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "image/jpeg";//要输出的类型

        Bitmap img = new Bitmap(50,20);//空白图,指定大小
        Graphics gr = Graphics.FromImage(img);//往哪个图上绘制
        Font font = new Font("宋体",12,FontStyle.Bold);//字体样式
        SolidBrush brush = new SolidBrush(Color.White);//设置画笔
        gr.FillRectangle(brush,0,0,50,20);//设置画笔绘制图形的形状
        brush.Color = Color.Red;//绘制图形的颜色

        string s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//随即字符数据源
        string str = "";
        Random r = new Random();
        for (int i = 0; i < 4; i++)
        {
            int start = r.Next(62);
            str += s.Substring(start,1).ToString();//取随机数,截取一位,组成4位验证码
        }
        context.Session["yanzheng"] = str;//会话中保存
        gr.DrawString(str,font,brush,0,0);//绘制图形
        //保存图片,通过Response响应流保存
        img.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

界面

<body>
    <form id="form1" runat="server" method="get">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>

        <br />
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox ID="txtcode" runat="server"></asp:TextBox>
                <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="yanzheng.ashx" OnClick="ImageButton1_Click" />
        <br />
                <asp:Button ID="btn_checkCode" runat="server" OnClick="btn_checkCode_Click" Text="验证" />
                <br />
                <asp:Label ID="Label1" runat="server"></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>

    </div>
    </form>
</body>
 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton1.ImageUrl = "yanzheng.ashx?id="+new Random().Next(100);
    }
    protected void btn_checkCode_Click(object sender, EventArgs e)
    {
        string s1 = txtcode.Text.ToUpper();
        string s2 = Session["yanzheng"].ToString().ToUpper();
        if (s1==s2)
        {
            Label1.Text = "验证成功";
        }
        else
        {
            Response.Write("<script>alert(‘验证失败‘)</script>");
        }
    }

时间: 2024-12-20 13:28:18

WebForm 验证码的相关文章

webform验证码

1 using System; 2 using System.Web; 3 using System.Drawing; 4 using System.Web.SessionState;//IReqiresSessionState的命名空间 5 //点击图片换验证码用imagebutton,不能用时在网页上加?id= 6 public cladd show:IHttpHandler,IRequiresSessionstate 7 { 8 context.Response.ContentType="

webform:图片水印、验证码制作

一.图片水印 1:引命名空间System.Drawing; 前端代码 <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上传" /><br /> <asp:Image ID="Image1&

WebForm 【图片验证码】

用图片显示验证码 验证码的作用是在于防止某些别有用心的用户用暴力破解等方法猜测密码,是一项非常有效的防止黑客技术. <form id="form1" runat="server"> <div> 用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 密码:<asp:TextBox I

【2017-6-9】WebForm 随机验证码制作

前台代码 <body> <form id="form1" runat="server"> <div> <br /> <br /> <%--用户输入的文本框--%> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <%--验证码图片--%> <img

Webform 文件上传、 C#加图片水印 、 图片验证码

文件上传:要使用控件 - FileUpload 1.如何判断是否选中文件? FileUpload.FileName - 选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.value.length 2.如何保存到服务器上? FileUpload.SaveAs("绝对路径"); 3.如何获得绝对路径? 先编写相对路径 - "UpLoads/abc.txt" 将相对路径映射成绝对路径 - Server.MapPath("UpLoads/a

webform 一般处理程序,图片验证码

一般处理程序ashx.cs里的代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; using System.Web.SessionState; //IRequiersSessinState的命名空间 namespace Web自己写验证码 { /// <summary> /// Handler1 的摘要说明 /// </s

(转)C#生成中文汉字验证码源码(webform)

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.Ht

创建数字验证码

1 public class ValidateCode 2 { 3 public ValidateCode() 4 { 5 } 6 /// <summary> 7 /// 验证码的最大长度 8 /// </summary> 9 public int MaxLength 10 { 11 get { return 10; } 12 } 13 /// <summary> 14 /// 验证码的最小长度 15 /// </summary> 16 public int

MVC下验证码

验证码技术是目前很多WEB程序采用的一种安全防御技术,主要用于防止使用软件程序自动和批量提交表单.MvcCaptcha是应用于ASP.NET MVC Web应用程序中的验证码控件,功能强大,使用简单方便,生成的验证码图片效果如下: MvcCaptcha的主要特点: 支持自定义验证码图片的字体扭曲程度(None, Low, Medium, High, Extreme五级)和图片中的文本个数: 支持自定义验证码图片的背景杂色级别(None, Low, Medium, High, Extreme五级)