`
kang275284
  • 浏览: 166888 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ASP.net实现验证码技术(2)

阅读更多

第一步生成验证码

新增一个ValidateCode.aspx页面

在ValidateCode.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;
using System.Drawing.Imaging;

public partial class ValidateCode : System.Web.UI.Page
{   //该页面将用于生成验证码图片
    protected void Page_Load(object sender, EventArgs e)
    {     //调用函数将验证码生成图片
        this.CreateCheckCodeImage(GenerateCheckCode());
      
    }
    private string GenerateCheckCode()
    {  //产生五位的随机字符串
        int number;
        char code;
        string checkCode = String.Empty;

        System.Random random = new Random();

        for (int i = 0; i < 5; i++)
        {
            number = random.Next();

            if (number % 2 == 0)
                code = (char)('0' + (char)(number % 10));
            else
                code = (char)('A' + (char)(number % 26));

            checkCode += code.ToString();
        }

        //Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
       Session["CheckCode"] = checkCode;//用于客户端校验码比较

        return checkCode;
    }

    private void CreateCheckCodeImage(string checkCode)
    {  //将验证码生成图片显示
        if (checkCode == null || checkCode.Trim() == String.Empty)
            return;

        System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
        Graphics g = Graphics.FromImage(image);

        try
        {
            //生成随机生成器
            Random random = new Random();

            //清空图片背景色
            g.Clear(Color.White);

            //画图片的背景噪音线
            for (int i = 0; i < 25; i++)
            {
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);

                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }

            Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
            System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);

            //画图片的前景噪音点
            for (int i = 0; i < 100; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);

                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            //画图片的边框线
            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            Response.ClearContent();
            Response.ContentType = "image/Gif";
            Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }
}

第二步测试验证码

建立Test.aspx

form id="form1" runat="server">
    <div>
       
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" /><br />
        &nbsp;
        <asp:Image ID="Image1" runat="server" ImageUrl="~/ValidateCode.aspx" />//该图片将用于显示验证码
        </div>
    </form>

Test.aspx.cs代码

protected void Page_Load(object sender, EventArgs e)
    {
       
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
       
      if (this.TextBox1.Text.ToString().Trim() == Session["CheckCode"].ToString()) { Response.Write("<script lauguage='javascript'>alert('验证成功');</script>"); }
 

分享到:
评论

相关推荐

    asp.net实现验证码功能

    在这个特定的场景中,我们关注的是如何在ASP.NET中实现验证码功能,这是一种用于验证用户身份的安全机制,通常用于防止自动化程序(如机器人)进行恶意操作。 验证码在网页上通常表现为一串随机生成的图像文字,...

    ASP.NET动态验证码

    在这个例子中,我们将深入探讨ASP.NET如何实现动态验证码的生成与验证。 首先,我们需要创建一个验证码类,这个类将负责生成随机的字符串和对应的图像。在.NET框架中,我们可以利用`Random`类生成随机数字,然后将...

    asp.net mvc验证码实现

    在这个场景中,我们关注的是在ASP.NET MVC中实现验证码的功能。验证码的主要目的是防止自动机器人或恶意用户进行非法操作,例如垃圾邮件提交、恶意注册等。下面将详细讨论如何在ASP.NET MVC中实现验证码。 首先,...

    ASP.NET 实现验证码

    ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供...当然,随着技术的发展,验证码的形式也在不断演进,比如滑动验证、点击验证等,这些更复杂的验证方式也可以在ASP.NET中通过自定义控件或第三方库来实现。

    一个asp.net图片验证码

    在这个特定的案例中,我们关注的是一个与ASP.NET相关的图片验证码实现。 在ASP.NET中创建图片验证码通常涉及以下步骤: 1. **生成随机字符串**:首先,我们需要生成一个随机的字符串,这个字符串将被显示在图片上...

    asp.net MVC验证码

    ASP.NET MVC验证码是一种用于验证用户输入安全性的技术,主要防止自动化的机器人或恶意脚本进行非法操作,如垃圾邮件提交、刷票等。在ASP.NET MVC框架中,验证码的实现通常涉及生成一串随机字符串或者图像,用户在...

    asp.net 图片验证码

    ASP.NET 图片验证码是一种用于网络安全的身份验证机制,它在网页上以图像的形式显示一组随机生成的字符,用户需要输入这些字符以证明他们不是自动化程序。这种验证码的主要目的是防止机器人、爬虫和其他自动化工具...

    Asp.Net 生成验证码

    总结,Asp.Net生成验证码涉及的主要知识点有:验证码的基本原理、Asp.Net内置Captcha控件的使用、自定义服务器控件的开发、纯代码实现验证码的逻辑以及验证码的显示和验证。通过分析提供的文件名,我们可以推测这些...

    ASP.net 带验证码的极其漂亮美观多项目可通用登陆界面。

    在ASP.NET中实现验证码通常涉及到以下步骤: 1. **创建验证控件**:ASP.NET 提供了`Validator`类,我们可以创建一个`CustomValidator`控件来处理自定义的验证逻辑,如生成和验证验证码。 2. **生成验证码**:在...

    Asp.net 实现验证码功能的Web控件

    ### ASP.NET实现验证码功能的Web控件 #### 概述 在现代Web应用开发中,验证码作为一种简单而有效的防机器人措施被广泛应用于登录、表单提交等场景中。本文将详细介绍如何利用ASP.NET来实现一个自定义的验证码功能...

    asp.net图片验证码

    在ASP.NET中实现图片验证码,主要涉及到以下几个关键知识点: 1. **生成随机字符串**:首先,我们需要创建一个包含随机字母和数字的字符串。这通常通过`Random`类和字符数组实现,确保每次请求时生成的字符串都是...

    验证码 asp.net 各种验证码

    首先,我们要了解ASP.NET验证码的基本原理。验证码通常由服务器生成一个随机的字符串或图像,并将其存储在服务器端的会话(Session)中。客户端在页面加载时显示这个验证码,用户输入后,服务器会比较用户输入与存储...

    asp.net mvc 验证码

    asp.net mvc的验证码,不解释---------------------

    Asp.net 验证码控件

    在本篇文章中,我们将深入探讨Asp.net验证码控件的工作原理、类型以及如何在实际项目中应用。 **1. Asp.net验证码控件的原理** 验证码控件的主要目的是创建一个动态生成的、一次性使用的图像,其中包含随机的字母或...

    asp.net绘制验证码示例

    在这个"asp.net绘制验证码示例"中,我们将深入探讨如何在ASP.NET环境中生成和验证图像验证码。 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart"的缩写,它是一...

    【ASP.NET编程知识】ASP.NET 实现验证码以及刷新验证码的小例子.docx

    ASP.NET 实现验证码及刷新验证码小例子 ASP.NET 是一个功能强大的Web应用程序开发框架,它提供了许多有用的功能和工具来帮助开发者快速构建Web应用程序。在本文中,我们将介绍如何使用 ASP.NET 实现验证码及刷新...

    asp.net短信登录验证码和图片验证程序源码

    资源名:asp.net短信登录验证码和图片验证程序源码 资源类型:程序源代码 源码说明: 1.实现了验证码倒计时的功能 1.以下验证码例子采用的是先获取手机号文字验证码,如果文字验证码收不到,将采用语音播放验证码的...

    asp.net中实现验证码

    asp.net中实现验证码 图片 字母 数字

    Asp.net 实现验证码功能的Web控件.rar

    Asp.net 实现验证码功能的Web控件.rar

Global site tag (gtag.js) - Google Analytics