WEB开发网
开发学院软件开发C语言 C#基础回顾:用GDI+绘制验证码 阅读

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

 2009-03-13 08:19:14 来源:WEB开发网   
核心提示:验证码在很多需要用户登陆或发表言论的网页上都可以见到,传统的一般是用代表各种不同数字或字符的图片来进行组合,C#基础回顾:用GDI+绘制验证码,从而实现效果,但是,大家如果什么好的办法,希望不吝赐教,很明显这种方式的灵活性不高,而且需要准备大量的图片作素材

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

目前,一般就是采用全自动生成,整个验证码为一张图片,而不是多张图片的组合。在.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;
}

1 2 3  下一页

Tags:基础 回顾 GDI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接