using System.Drawing;
using System.Web;
using System.Web.SessionState; /// <summary>
/// CaptchaHandler 的摘要说明
/// </summary>
public class CaptchaHandler : IHttpHandler, IRequiresSessionState //简记:我需要Session
{ public void ProcessRequest(HttpContext context)
{ // GDI+ 三步 1画布 2为画布创建画笔 3绘制所需素材 var vCode = CaptchaHelper.CreateRandomCode(); //自己封装的方法 var buffer = CaptchaHelper.DrawImage(vCode, background: Color.White); //自己封装的方法
context.Session["vCode"] = vCode; //vCode:string 类型的验证码字符串 context.Response.ContentType = "image/gif";
context.Response.BinaryWrite(buffer);
} public bool IsReusable { get { return false; } }
}
在一般处理程序中如果要使用Session:
【关键】Handler 要实现 IRequiresSessionState 接口(所在的命名空间 using System.Web.SessionState;)