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

Asp.net(C#)实现验证码功能

阅读更多

新建一个专门用来创建验证码图片的页面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, 
33);

            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实现验证码功能

    总之,ASP.NET结合C#和System.Drawing能方便地实现验证码功能,有效地保护了网站免受自动化的恶意攻击。在实际开发中,还可以根据需要添加更多安全特性,比如时间限制、滑动验证码、声音验证码等,进一步提高系统的...

    ASP.NET C# 网页验证码

    ASP.NET C# 网页验证码 private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 validatenumimage vnimg=new validatenumimage(8); string vnum=vnimg.ValidateNum;...

    用asp.net生成随机验证码.rar_.NET验证码_asp.net_asp.net C#_生成验证码_验证码

    在ASP.NET框架下,我们可以利用C#编程语言来实现一个高效且安全的随机验证码生成器。本文将详细介绍如何在ASP.NET环境中创建一个基于C#的验证码生成器。 首先,我们需要理解验证码的基本构成。一个有效的验证码通常...

    asp.net无刷新验证码(漂亮)

    在Code文件中,你应该找到了实现这些功能的源代码,包括生成验证码的C#类、用于展示和更新验证码的ASP.NET控件,以及相应的JavaScript和Ajax处理逻辑。你可以详细研究这些代码,了解其工作原理,并根据实际需求进行...

    自制ASP.NET C#中文验证码 使用DLL和纯代码二种对比

    自制ASP.NET C#中文验证码 使用DLL和纯代码二种对比 DLL使用WEBXML提供的产生随机中文字符

    ASP.NET GIF动态验证码源码

    在ASP.NET框架中,开发者可以利用C#或VB.NET语言实现这一功能。这个源码是基于VS2010开发的,适合那些使用微软开发工具的Web开发者。 验证码通常由随机生成的一串字母或数字组成,用户在提交表单前需要输入显示的...

    利用cookie实现asp.net(c#)验证码

    在ASP.NET(C#)开发中,验证码是一种常用的安全机制,用于防止自动脚本或机器人进行恶意操作,如垃圾邮件提交、刷票等。Cookie是Web应用程序中存储在客户端的一种小型数据容器,通常用来保存用户的会话信息。在这个...

    ASP.NET MVC实现网站验证码功能

    在这个场景中,我们将讨论如何在ASP.NET MVC中实现图片验证码功能,这是一种常见的安全措施,用于防止自动化的机器人或恶意脚本对网站进行非法操作。 验证码的主要目的是验证用户是否为人类,而不是计算机程序。在...

    【ASP.NET编程知识】Asp.net Web Api实现图片点击式图片验证码功能.docx

    在这个特定的案例中,我们将探讨如何利用ASP.NET Web API来实现一种特殊的验证码功能,即图片点击式的验证码。 验证码的主要目的是防止自动化程序(如机器人)进行恶意操作,通常要求用户完成一项简单的任务以证明...

    asp.net c#验证码程序

    在VS2005(Visual Studio 2005)环境下,开发人员可以利用C#语言和ASP.NET框架轻松创建验证码功能。 验证码的核心在于生成一串随机、难以被机器识别的文字或数字组合,并将其显示在图像上。用户在提交表单前需输入...

    asp.net生成随机验证码控件

    在ASP.NET中,我们可以利用C#或VB.NET语言来实现这个功能。 1. **生成随机字符串**:首先,我们需要生成一段随机的字符串作为验证码的内容。这可以通过`Random`类配合`char`数组和ASCII值范围来实现。例如,我们...

    基于ASP.NET图片广告验证码的实现

    在本教程中,我们将深入探讨如何使用C#语言在ASP.NET环境中实现图片验证码的功能。 首先,我们需要理解验证码的基本原理。验证码的核心在于生成一串随机字符串,并将其转化为图像展示给用户。这个字符串应当具有...

    asp.net 生成随机验证码

    在本教程中,我们将深入探讨如何在ASP.NET中实现这一功能,包括生成随机字符串、创建验证码图片以及添加水印字母。 首先,我们需要生成一个随机字符串。在C#中,我们可以使用`Random`类和`char`数据类型来实现。...

    3个asp.net的验证码后台生网页

    解压后,你可以查看ASP.NET页面(.aspx文件)的HTML结构和代码-behind文件(.cs或.vb文件)的C#或VB.NET代码,了解每个验证码的具体实现步骤。 在实际应用中,还可以结合其他安全措施,如限制同一IP地址的请求次数...

    用asp.net生成随机验证码

    通过上述步骤,你可以在ASP.NET项目中实现一个基本的随机验证码功能。然而,随着技术的发展,现代验证码更倾向于使用更先进的技术,如谷歌的reCAPTCHA,提供更好的用户体验同时保持较高的安全性。

    ASP.NET实现图形验证码

    ASP.NET实现图形验证码是Web开发中的一个重要环节,用于防止自动化的机器人或恶意脚本进行诸如注册、登录等操作。在本文中,我们将深入探讨如何在ASP.NET环境下利用Visual Studio 2005来创建一个有效的图形验证码...

    【ASP.NET编程知识】ASP.NET生成图形验证码的方法详解.docx

    下面是一个简单的 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实现无刷新验证码

    通过上述步骤,我们成功实现了基于ASP.NET AJAX的无刷新验证码功能。这种方式不仅提升了用户体验,减少了服务器压力,同时也增强了网站的安全性。对于任何希望优化登录流程或表单提交体验的Web应用来说,这是一个...

    用ASP.NET生成随机验证码(源码+注释)

    在这个主题中,我们将深入探讨如何使用ASP.NET和C#语言生成随机验证码。 1. **验证码的基本原理**: 验证码(CAPTCHA)全称是“全自动区分计算机和人类的图灵测试”(Completely Automated Public Turing test to ...

Global site tag (gtag.js) - Google Analytics