using System; using System.Collections.Generic; using System.ComponentModel; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing; namespace WebApplication2 { [DefaultProperty("Text")] [ToolboxData("<{0}:VerificationCode runat=server></{0}:VerificationCode>")] public class VerificationCode : WebControl,IHttpHandler { private String _code="Hello"; public String Code { get { return _code; } set { _code = value; } } public VerificationCode() : base(HtmlTextWriterTag.Img) { } protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); writer.AddAttribute("onclick", "this.src=this.src+'?'"); writer.AddAttribute(HtmlTextWriterAttribute.Src, "img.Seven"); writer.AddAttribute("alt", "Click To Reload"); } protected override void RenderContents(HtmlTextWriter output){} bool IHttpHandler.IsReusable { get { return true; } } void IHttpHandler.ProcessRequest(HttpContext context) { MemoryStream ms = new MemoryStream(); Bitmap img = new Bitmap(100, 30); Graphics g = Graphics.FromImage(img); g.Clear(ColorTranslator.FromHtml("#CCCCCC")); g.DrawString(Code, new Font("宋体", 12), Brushes.Black, 10, 10); img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); this.Context.Response.Clear(); this.Context.Response.ContentType = "image/jpeg"; this.Context.Response.BinaryWrite(ms.ToArray()); img.Dispose(); ms.Close(); g.Dispose(); this.Context.Response.End(); } } } wenconfig System.web <add verb="*" path="*.YourTypeName" type="Yournamespace.className"/>