C#基础回顾:用GDI+绘制验证码

简介:

验证码在很多需要用户登陆或发表言论的网页上都可以见到。传统的一般是用代表各种不同数字或字符的图片来进行组合,从而实现效果。但是,很明显这种方式的灵活性不高,而且需要准备大量的图片作素材。

      目前,一般就是采用全自动生成,整个验证码为一张图片,而不是多张图片的组合。在.Net中,可以通过GDI+来实现,可能你会觉得很麻烦,但只要跟着我操作一遍,你就会发现其实很简单。
      现在,就开始制作一个最简单的验证码。 (这里并不介绍如何使用GDI+技术,相关内容请大家查看这里)
      1.既然要产生验证码,那是关键的莫过于生成随机数(这里的随机数,指的是数字与字母的组合)。
      大家想一下数字和字符是不是都有是用ASCII码进行编码进行表示?因此,想要生成含字母和数字的随机数,不仅仅只有通过事先提供所有数字和字母这种方法,还可以有很多种办法。大家如果什么好的办法,希望不吝赐教。我今天要介绍的是一种很简单的办法。直接来看代码吧:

ContractedBlock.gif 生成随机数

      上面有一个RandomGeneratorStyle,这个是我自己写的一个枚举,用于表示需要生成哪种验证码。

ContractedBlock.gif RandomGeneratorStyle


      2.有了这些数,那下面就基本上考你是画画的功夫了。当然这里用到的不是颜料、水彩笔等,而是要用GDI+。
      平时,我们看见的验证码是什么样式子的?是不是一个矩形?矩形里面有一些随机数?那接下去要做的就是用GDI+技术把生成的随机数画到一个矩形中。
      这个要用到的主要的就只有一个方法:Graphics.DrawString();不了解的朋友可以先去网上查查关于这个方法的介绍。下面直接来看代码:

ContractedBlock.gif 绘制验证码

      现在,就可以来测试下它的效果了。想要调用上面的方法,我们必须要传入一个当前的Page对象,为此我们可以新建一个页面命名为yzm.aspx。然后,在PageLoad中调用该方法。这样,我们便可以看到它了。如下图1所示:

      
图1 验证码

      如果,你需要在img元素中显示,那也很简单,只需要把src设置为yzm.aspx就可以了。<img src="yzm.aspx" alt="" />
      最后,再来介绍下如何进行验证。(如果只显示,不验证,那就不能管它叫验证码了。)
      细心的朋友应该已经发现,在绘制验证码的方法中,我设置了一个Session。那要进行验证的话,自然是通过与这个绘制时所设置的Session比较了。代码如下:

ContractedBlock.gif 验证方法


      通过上面的这种方式,就可以生成验证码了。如果你想要生成漂亮些的验证码,那就需要你自己在绘制过程中再动动脑筋了。








本文转自stg609博客园博客,原文链接:http://www.cnblogs.com/stg609/archive/2009/03/13/1410643.html,如需转载请自行联系原作者

目录
相关文章
|
9月前
|
C#
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
|
9月前
|
C#
C# GDI+绘图(三)GDI+实现QQ截图类似功能
C# GDI+绘图(三)GDI+实现QQ截图类似功能
|
9月前
|
C#
C# GDI+绘图(二)进阶---Pen/Brush以及坐标轴平移和旋转等
上一篇C# GDI+绘图(一)GDI+介绍及基础,我们介绍了,GDI+的基础,这篇我们对其进阶内容进行学习,分别为Pen/Brush以及坐标轴操作
|
9月前
|
C# 图形学
C# GDI+绘图(一)GDI+介绍及基础
最近,项目中,有一块比较发杂的网格,并在网格上绘有各种颜色和文本,在Dev库中并未找到能实现这种功能的现有或可以二次开发的控件,因此,涉及到GDI+绘图这块陌生的领域。下面即时我在本次学习过程中的笔记,本次内容一共分为4篇,分别都有各自的代码或工程文件提供,有需要的朋友可以下载。
|
C# 开发工具
C#滑动拼图验证码实现笔记
C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。突发奇想,动手开发一个C#滑动拼图验证码,下面是我开发过程的记录。
C#滑动拼图验证码实现笔记
|
前端开发 C# 数据安全/隐私保护
C#验证码
验证码通常是为了区分用户是人还是计算机,也可以防止破解密码、刷票等恶意行为,而客户端上多数会用在关键操作上,比如购买、登录、注册等场景。现在验证码的种类样式也特别多,今天教大家如何用C#做出滑动拼图验证码吧~
C#验证码
|
C# 图形学
C#之深入理解GDI+绘制圆弧及圆角矩形等比缩放的绘制
GDI+中对于圆弧的绘制,是以给定的长方形(Rectangle`结构)为边界绘制的椭圆的一部分形成的圆弧。绘制的圆弧的中心为长方形内切椭圆的圆心(如果是正方形,则正方形的...
477 0
C#之深入理解GDI+绘制圆弧及圆角矩形等比缩放的绘制
|
C# 图形学 Windows
C# GDI+编程之Graphics类
GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像、数学仿真等。 Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法。Graphics类封装了绘制直线、曲线、圆形、图像和文本的方法,是一切GDI+操作的基础类。在绘图之前,必须在指定的窗体上创建一个Graphics对象,才能调用Graphics类的方法画图。
299 0
C# GDI+编程之Graphics类
|
C# 数据安全/隐私保护
C#实现手机发送验证码
C#实现手机发送验证码
452 0
|
JSON C# 数据安全/隐私保护
随手记_C#验证码
前言 最近在网上偶然看见一个验证码,觉得很有意思,于是搜了下,是使用第三方实现的,先看效果:     总体来说效果还是可以的,官方提供的SDK也比较详细,可配置性很高。在这里在简单啰嗦几句使用方式: 使用步骤 ①进入官网下载sdk接口→ http://www.geetest.com/install/ ,因为小弟是做C#的,所以此处选择C#,具体选择看各位大佬所用语言决定~ ②第二步,获取代码,访问红框所示地址,下载demo。
1157 0