生成图片验证码
时间:2010-10-10 来源:张静静
首先需要在网站下面添加窗体。在窗体里面生成包含数字的图片。
Random rd = new Random(); //随机数
int i = rd.Next(1000, 9999);
Session["code"] = i; //将生成的随机数放到Session中方便对比
Bitmap bitmap = new Bitmap(80, 20);//创建图片对象
Graphics gh = Graphics.FromImage(bitmap);//将图片对象创建为绘图对象
gh.Clear(Color.White);
gh.DrawString(i.ToString(), new Font("宋体", 15), Brushes.Blue, new PointF(0, 0));
gh.DrawLine(Pens.AliceBlue, new Point(0, 10), new Point(80, 10));
gh.DrawLine(Pens.AliceBlue, new Point(0, 5), new Point(80, 10));
bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); //用图片对象,将对象本身保存为服务端向客户端浏览器的响应输出流,并指定文件类型。
然后在登录页面添加一张图片:
<img src="ImageCode.aspx" border="0" />它的图片源为刚才创建的绘制图片的.aspx页面。这样一个简单的图片验证码就实现了。也可以写个通用类去实现验证。
下面是一个简单的验证码方法:
public string CreateValidate(int count)
{
string allchar = "1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] allchararray = allchar.Split(',');
string randomcode = "";
int temp = -1;
Random rd = new Random();
for (int i = 0; i < count; i++)
{
if (temp != -1)
{
rd = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rd.Next(35);
if (temp == t)
{
return CreateValidate(count);
}
temp = t;
randomcode += allchararray[t];
}
Session["code"] = randomcode;
return randomcode;
}
Random rd = new Random(); //随机数
int i = rd.Next(1000, 9999);
Session["code"] = i; //将生成的随机数放到Session中方便对比
Bitmap bitmap = new Bitmap(80, 20);//创建图片对象
Graphics gh = Graphics.FromImage(bitmap);//将图片对象创建为绘图对象
gh.Clear(Color.White);
gh.DrawString(i.ToString(), new Font("宋体", 15), Brushes.Blue, new PointF(0, 0));
gh.DrawLine(Pens.AliceBlue, new Point(0, 10), new Point(80, 10));
gh.DrawLine(Pens.AliceBlue, new Point(0, 5), new Point(80, 10));
bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); //用图片对象,将对象本身保存为服务端向客户端浏览器的响应输出流,并指定文件类型。
然后在登录页面添加一张图片:
<img src="ImageCode.aspx" border="0" />它的图片源为刚才创建的绘制图片的.aspx页面。这样一个简单的图片验证码就实现了。也可以写个通用类去实现验证。
下面是一个简单的验证码方法:
public string CreateValidate(int count)
{
string allchar = "1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] allchararray = allchar.Split(',');
string randomcode = "";
int temp = -1;
Random rd = new Random();
for (int i = 0; i < count; i++)
{
if (temp != -1)
{
rd = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rd.Next(35);
if (temp == t)
{
return CreateValidate(count);
}
temp = t;
randomcode += allchararray[t];
}
Session["code"] = randomcode;
return randomcode;
}
相关阅读 更多 +