驗證碼在很多需要用戶登陸或發表言論的網頁上都可以見到。傳統的一般是用代表各種不同數字或字 符的圖片來進行組合,從而實現效果。但是,很明顯這種方式的靈活性不高,而且需要准備大量的圖片作 素材。
目前,一般就是采用全自動生成,整個驗證碼為一張圖片,而不是多張圖片的組合。在.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;
}