简单的验证码控件
不是很漂亮,只是用于研究其原理;
是新建了一个ashx文件(一般处理程序,因为我还在学习中……)
在aspx页中的form表单中添加调用;
<img src="验证码实例.ashx" alt="" />
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.SessionState;
namespace WebApp
{
/// <summary>
/// 验证码实例 的摘要说明
/// </summary>
public class 验证码实例 : IHttpHandler, IRequiresSessionState //在一般处理程序中使用Session要实现该接口,在System.Web.SessionState中;
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/JPEG"; //返回jpg类型;
using (Bitmap bitmap = new Bitmap(140, 80)) //像素大小;
{
using (Graphics g = Graphics.FromImage(bitmap)) //生成一个画板
{
Random rand = new Random();
int code = rand.Next(1000, 999999); //制定随机函数,用于限定字随机字符串大小;
string strCode = code.ToString();
HttpContext.Current.Session["Code"] = strCode; //在一般处理程序中使用Session接口;
g.Clear(Color.YellowGreen); //指定背景颜色;
g.DrawString(strCode, new Font("微输雅黑", 20), Brushes.White, new PointF(15, 25)); //画的图片相关参数,(字体,大小),颜色,位置;
bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg); //输出到流中并保存为jpg格式;
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.Web.SessionState;
namespace WebApp
{
/// <summary>
/// 验证码实例 的摘要说明
/// </summary>
public class 验证码实例 : IHttpHandler, IRequiresSessionState //在一般处理程序中使用Session要实现该接口,在System.Web.SessionState中;
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/JPEG"; //返回jpg类型;
using (Bitmap bitmap = new Bitmap(140, 80)) //像素大小;
{
using (Graphics g = Graphics.FromImage(bitmap)) //生成一个画板
{
Random rand = new Random();
int code = rand.Next(1000, 999999); //制定随机函数,用于限定字随机字符串大小;
string strCode = code.ToString();
HttpContext.Current.Session["Code"] = strCode; //在一般处理程序中使用Session接口;
g.Clear(Color.YellowGreen); //指定背景颜色;
g.DrawString(strCode, new Font("微输雅黑", 20), Brushes.White, new PointF(15, 25)); //画的图片相关参数,(字体,大小),颜色,位置;
bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg); //输出到流中并保存为jpg格式;
}
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}