首先外观显示页面代码:
1
protected System.Web.UI.WebControls.Image ValidateImage;
2
3
private void Page_Load(object sender, System.EventArgs e)
4
{
5
if(!IsPostBack)
6
{
7
//验证码的生成和获取,用于登录页面的有效验证。
8
string ValidCode = DB.CheckCode.MakeValidateCode();
9
ValidateImage.ImageUrl = "xbm.aspx?code="+ ValidCode;
10
ViewState["ValidCode"] = ValidCode;
11
ViewState["CheckCode"]=DB.CheckCode.DecodeValidateCode(ViewState["ValidCode"].ToString());
12
ary_chk=new ArrayList();
13
ary_chk.Add(ViewState["CheckCode"]);
14
ary_chk.Add(System.DateTime.Now);
15
//判断输入的验证码是否正确
16
BtnSub.Attributes["onclick"]="return Check(\""+ViewState["CheckCode"].ToString()+"\");";
17
}
18
}
以下为处理验证码类:
//获取随机生成的验证码类
public class CheckCode

{
public static string DecodeValidateCode(string code)

{
char [] s = code.ToCharArray();
return String.Format("{0}{1}{2}{3}", s[0],s[9],s[3],s[7]);
}
//随机生成验证码序列
public static string MakeValidateCode()

{

char[] s = new char[]
{ '2','3','4','5','6','7','8','9','a'
,'b','c','d','e','f','g','h','i','j','k','m','n','p','q'
,'r','s','t','u','v','w','x','y','z'};

string num = "";
Random r = new Random();
for(int i = 0; i < 10; i++)

{
num += s[r.Next(0, s.Length)].ToString();
}
return num;
}
}
把接收的验证码转为图片xbm.aspx?code=生成的验证玛:
private void Page_Load(object sender, System.EventArgs e)

{
if (!IsPostBack)

{
if (Request["code"] != null)

{
string Validcode = Request["code"];
//进行验证码长度的判断
if (Validcode.Length <10)

{
Validcode = "3360";
}
else

{
//获取验证码
Validcode = DB.CheckCode.DecodeValidateCode(Validcode);
}
ValidateCode code =new ValidateCode();
//画出验证码
code.DrawValidateCode(this, Validcode);
}
}

//实现一个验证码的类

public class ValidateCode

{
private Bitmap validateimage;
private Graphics g;
public ValidateCode()

{
validateimage = new Bitmap(40, 17, PixelFormat.Format24bppRgb);
g = Graphics.FromImage(validateimage);
}
//设置验证码的相关属性
public void DrawValidateCode(Page e, string i)

{
g.FillRectangle(new SolidBrush(Color.FromArgb(0xee,0xee,0xee)), 0, 0, 40, 17);
g.DrawString(i, new Font("宋体",12),new SolidBrush(Color.Black),new PointF(1,0));
g.Save();
MemoryStream ms=new MemoryStream();
validateimage.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
e.Response.ClearContent();
e.Response.ContentType="image/gif";
e.Response.BinaryWrite(ms.ToArray());
e.Response.End();
}
}


以上大家可以自己做自己的整和,也可以随自己的意愿进行修改。