首先外观显示页面代码:
1protected 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 }
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=生成的验证玛: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;
}
}
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();
}
}
{
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();
}
}
以上大家可以自己做自己的整和,也可以随自己的意愿进行修改。