其实有很多生成验证码的简单方法,这里给出一种通过请求一般处理程序来获得验证码,适用于多个页面使用:
首先在网站中添加一个页面,然后添加Imahe控件,用来显示验证码
<image src="Code.ashx" />//Code.ashx 这里用来显示验证码
我们来看看验证码的生成
public class Code : IHttpHandler {
public void ProcessRequest (HttpContext context) \
{
context.Response.ContentType = "image/jpeg";
string code = CreateCode();
Image img = CreateImg(code); //这里在使用那个bmp对象,所以下面的using语句不能用
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
private string CreateCode() ///这里用来生成随机的四个字符
{
Random rand = new Random();
string s = "1234567890abcdefghijklmn"; //随机写的字符串,从这些字符串随机选择字符生成验证码的字符
string code = "";
for (int i = 0; i < 4; i++)
{
code+=s[rand.Next(0,s.Length)];
} return code;
}
private Bitmap CreateImg(string code) //这里来生成验证码,也就是一张包含字符的图片
{
Bitmap bmp = new Bitmap(60,40); //这里不能用using语句,因为 上面还有使用这个bmp对象
using(Graphics g = Graphics.FromImage(bmp))
{
g.FillRectangle(Brushes.Red, 0, 0, bmp.Width, bmp.Height);
g.FillRectangle(Brushes.White, 1, 1, bmp.Width - 2, bmp.Height - 2);
g.DrawString(code, new Font("宋体", 14), Brushes.Black, 5, 5);
}
return bmp;
}
public bool IsReusable { get { return false; } }
}
到这里就结束了,其实没有什么难点的.