第一步生成验证码
新增一个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 />
<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如何实现动态验证码的生成与验证。 首先,我们需要创建一个验证码类,这个类将负责生成随机的字符串和对应的图像。在.NET框架中,我们可以利用`Random`类生成随机数字,然后将...
在这个场景中,我们关注的是在ASP.NET MVC中实现验证码的功能。验证码的主要目的是防止自动机器人或恶意用户进行非法操作,例如垃圾邮件提交、恶意注册等。下面将详细讨论如何在ASP.NET MVC中实现验证码。 首先,...
ASP.NET 是微软开发的一种用于构建Web应用程序的框架,它提供...当然,随着技术的发展,验证码的形式也在不断演进,比如滑动验证、点击验证等,这些更复杂的验证方式也可以在ASP.NET中通过自定义控件或第三方库来实现。
在这个特定的案例中,我们关注的是一个与ASP.NET相关的图片验证码实现。 在ASP.NET中创建图片验证码通常涉及以下步骤: 1. **生成随机字符串**:首先,我们需要生成一个随机的字符串,这个字符串将被显示在图片上...
ASP.NET MVC验证码是一种用于验证用户输入安全性的技术,主要防止自动化的机器人或恶意脚本进行非法操作,如垃圾邮件提交、刷票等。在ASP.NET MVC框架中,验证码的实现通常涉及生成一串随机字符串或者图像,用户在...
ASP.NET 图片验证码是一种用于网络安全的身份验证机制,它在网页上以图像的形式显示一组随机生成的字符,用户需要输入这些字符以证明他们不是自动化程序。这种验证码的主要目的是防止机器人、爬虫和其他自动化工具...
总结,Asp.Net生成验证码涉及的主要知识点有:验证码的基本原理、Asp.Net内置Captcha控件的使用、自定义服务器控件的开发、纯代码实现验证码的逻辑以及验证码的显示和验证。通过分析提供的文件名,我们可以推测这些...
在ASP.NET中实现验证码通常涉及到以下步骤: 1. **创建验证控件**:ASP.NET 提供了`Validator`类,我们可以创建一个`CustomValidator`控件来处理自定义的验证逻辑,如生成和验证验证码。 2. **生成验证码**:在...
### ASP.NET实现验证码功能的Web控件 #### 概述 在现代Web应用开发中,验证码作为一种简单而有效的防机器人措施被广泛应用于登录、表单提交等场景中。本文将详细介绍如何利用ASP.NET来实现一个自定义的验证码功能...
在ASP.NET中实现图片验证码,主要涉及到以下几个关键知识点: 1. **生成随机字符串**:首先,我们需要创建一个包含随机字母和数字的字符串。这通常通过`Random`类和字符数组实现,确保每次请求时生成的字符串都是...
首先,我们要了解ASP.NET验证码的基本原理。验证码通常由服务器生成一个随机的字符串或图像,并将其存储在服务器端的会话(Session)中。客户端在页面加载时显示这个验证码,用户输入后,服务器会比较用户输入与存储...
asp.net mvc的验证码,不解释---------------------
在本篇文章中,我们将深入探讨Asp.net验证码控件的工作原理、类型以及如何在实际项目中应用。 **1. Asp.net验证码控件的原理** 验证码控件的主要目的是创建一个动态生成的、一次性使用的图像,其中包含随机的字母或...
在这个"asp.net绘制验证码示例"中,我们将深入探讨如何在ASP.NET环境中生成和验证图像验证码。 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart"的缩写,它是一...
ASP.NET 实现验证码及刷新验证码小例子 ASP.NET 是一个功能强大的Web应用程序开发框架,它提供了许多有用的功能和工具来帮助开发者快速构建Web应用程序。在本文中,我们将介绍如何使用 ASP.NET 实现验证码及刷新...
资源名:asp.net短信登录验证码和图片验证程序源码 资源类型:程序源代码 源码说明: 1.实现了验证码倒计时的功能 1.以下验证码例子采用的是先获取手机号文字验证码,如果文字验证码收不到,将采用语音播放验证码的...
asp.net中实现验证码 图片 字母 数字
Asp.net 实现验证码功能的Web控件.rar