C#基础回顾:用GDI+绘制验证码
2009-03-13 08:19:14 来源:WEB开发网验证码在很多需要用户登陆或发表言论的网页上都可以见到。传统的一般是用代表各种不同数字或字符的图片来进行组合,从而实现效果。但是,很明显这种方式的灵活性不高,而且需要准备大量的图片作素材。
目前,一般就是采用全自动生成,整个验证码为一张图片,而不是多张图片的组合。在.Net中,可以通过GDI+来实现,可能你会觉得很麻烦,但只要跟着我操作一遍,你就会发现其实很简单。
现在,就开始制作一个最简单的验证码。 (这里并不介绍如何使用GDI+技术,相关内容请大家查看这里)
1.既然要产生验证码,那是关键的莫过于生成随机数(这里的随机数,指的是数字与字母的组合)。
大家想一下数字和字符是不是都有是用ASCII码进行编码进行表示?因此,想要生成含字母和数字的随机数,不仅仅只有通过事先提供所有数字和字母这种方法,还可以有很多种办法。大家如果什么好的办法,希望不吝赐教。我今天要介绍的是一种很简单的办法。直接来看代码吧:
生成随机数
public static string Generate(RandomGeneratorStyle style, int length)
{
string strValidateString="";
Random rnd = new Random();
string strValidateStringSource;
switch (style)
{
case RandomGeneratorStyle.Number:
strValidateStringSource = "0123456789";
break;
case RandomGeneratorStyle.NumberAndChar:
strValidateStringSource = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case RandomGeneratorStyle.NumberAndCharIgnoreCase:
strValidateStringSource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
break;
default:
strValidateStringSource = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
}
for (int i = 0; i < length; i++)
{
strValidateString += strValidateStringSource[rnd.Next(strValidateStringSource.Length - 1)];
}
return strValidateString;
}
更多精彩
赞助商链接