新建一个专门用来创建验证码图片的页面ValidateCode.aspx
它的后台cs文件代码如下:
PageLoad
private void Page_Load(object sender, System.EventArgs e)

{
string checkCode = CreateRandomCode(4);
Session["CheckCode"] = checkCode;
CreateImage(checkCode);
}其中CreateRandomCode是自定义的函数,参数代表验证码位数
private string CreateRandomCode(int codeCount)

{
string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z" ;
string[] allCharArray = allChar.Split(',');
string randomCode = "";
int temp = -1;

Random rand = new Random();
for(int i = 0; i < codeCount; i++)

{
if(temp != -1)

{
rand = new Random(i*temp*((int)DateTime.Now.Ticks));
}
int t = rand.Next(35);
if(temp == t)

{
return CreateRandomCode(codeCount);
}
temp = t;
randomCode += allCharArray[t];
}
return randomCode;
}CreateImage也是一个自定义的函数,用于生成图
private void CreateImage(string checkCode)

{
int iwidth = (int)(checkCode.Length * 11.5);
System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
Graphics g = Graphics.FromImage(image);
Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);
Brush b = new System.Drawing.SolidBrush(Color.White);
//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
g.Clear(Color.Blue);
g.DrawString(checkCode, f, b, 3, 3);

Pen blackPen = new Pen(Color.Black, 0);
Random rand = new Random();
for (int i=0;i<5;i++)

{
int y = rand.Next(image.Height);
g.DrawLine(blackPen,0,y,image.Width,y);
}
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
}//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
g.Clear(Color.Blue);
这两种方法都可以改变生成图片的背景颜色
下面那个for循环用来生成一些随机的水平线
在需要用到验证码的页面添加一个<asp:Image>控件即可,但是要把ImageUrl指向生成验证码的页面
<asp:Image Runat="server" ID="ImageCheck" ImageUrl="ValidateCode.aspx"></asp:Image>
分享到:
相关推荐
总之,ASP.NET结合C#和System.Drawing能方便地实现验证码功能,有效地保护了网站免受自动化的恶意攻击。在实际开发中,还可以根据需要添加更多安全特性,比如时间限制、滑动验证码、声音验证码等,进一步提高系统的...
ASP.NET C# 网页验证码 private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 validatenumimage vnimg=new validatenumimage(8); string vnum=vnimg.ValidateNum;...
在ASP.NET框架下,我们可以利用C#编程语言来实现一个高效且安全的随机验证码生成器。本文将详细介绍如何在ASP.NET环境中创建一个基于C#的验证码生成器。 首先,我们需要理解验证码的基本构成。一个有效的验证码通常...
在Code文件中,你应该找到了实现这些功能的源代码,包括生成验证码的C#类、用于展示和更新验证码的ASP.NET控件,以及相应的JavaScript和Ajax处理逻辑。你可以详细研究这些代码,了解其工作原理,并根据实际需求进行...
自制ASP.NET C#中文验证码 使用DLL和纯代码二种对比 DLL使用WEBXML提供的产生随机中文字符
在ASP.NET框架中,开发者可以利用C#或VB.NET语言实现这一功能。这个源码是基于VS2010开发的,适合那些使用微软开发工具的Web开发者。 验证码通常由随机生成的一串字母或数字组成,用户在提交表单前需要输入显示的...
在ASP.NET(C#)开发中,验证码是一种常用的安全机制,用于防止自动脚本或机器人进行恶意操作,如垃圾邮件提交、刷票等。Cookie是Web应用程序中存储在客户端的一种小型数据容器,通常用来保存用户的会话信息。在这个...
在这个场景中,我们将讨论如何在ASP.NET MVC中实现图片验证码功能,这是一种常见的安全措施,用于防止自动化的机器人或恶意脚本对网站进行非法操作。 验证码的主要目的是验证用户是否为人类,而不是计算机程序。在...
在这个特定的案例中,我们将探讨如何利用ASP.NET Web API来实现一种特殊的验证码功能,即图片点击式的验证码。 验证码的主要目的是防止自动化程序(如机器人)进行恶意操作,通常要求用户完成一项简单的任务以证明...
在VS2005(Visual Studio 2005)环境下,开发人员可以利用C#语言和ASP.NET框架轻松创建验证码功能。 验证码的核心在于生成一串随机、难以被机器识别的文字或数字组合,并将其显示在图像上。用户在提交表单前需输入...
在ASP.NET中,我们可以利用C#或VB.NET语言来实现这个功能。 1. **生成随机字符串**:首先,我们需要生成一段随机的字符串作为验证码的内容。这可以通过`Random`类配合`char`数组和ASCII值范围来实现。例如,我们...
在本教程中,我们将深入探讨如何使用C#语言在ASP.NET环境中实现图片验证码的功能。 首先,我们需要理解验证码的基本原理。验证码的核心在于生成一串随机字符串,并将其转化为图像展示给用户。这个字符串应当具有...
在本教程中,我们将深入探讨如何在ASP.NET中实现这一功能,包括生成随机字符串、创建验证码图片以及添加水印字母。 首先,我们需要生成一个随机字符串。在C#中,我们可以使用`Random`类和`char`数据类型来实现。...
解压后,你可以查看ASP.NET页面(.aspx文件)的HTML结构和代码-behind文件(.cs或.vb文件)的C#或VB.NET代码,了解每个验证码的具体实现步骤。 在实际应用中,还可以结合其他安全措施,如限制同一IP地址的请求次数...
通过上述步骤,你可以在ASP.NET项目中实现一个基本的随机验证码功能。然而,随着技术的发展,现代验证码更倾向于使用更先进的技术,如谷歌的reCAPTCHA,提供更好的用户体验同时保持较高的安全性。
ASP.NET实现图形验证码是Web开发中的一个重要环节,用于防止自动化的机器人或恶意脚本进行诸如注册、登录等操作。在本文中,我们将深入探讨如何在ASP.NET环境下利用Visual Studio 2005来创建一个有效的图形验证码...
下面是一个简单的 ASP.NET 生成图形验证码的实现代码: ```csharp using System; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System....
通过上述步骤,我们成功实现了基于ASP.NET AJAX的无刷新验证码功能。这种方式不仅提升了用户体验,减少了服务器压力,同时也增强了网站的安全性。对于任何希望优化登录流程或表单提交体验的Web应用来说,这是一个...
在这个主题中,我们将深入探讨如何使用ASP.NET和C#语言生成随机验证码。 1. **验证码的基本原理**: 验证码(CAPTCHA)全称是“全自动区分计算机和人类的图灵测试”(Completely Automated Public Turing test to ...