ASP.NET生成验证码程序

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

using System;

using System.Web;

using System.Drawing;

/// <summary>

/// Summary description for CheckCode

/// </summary>

public class CheckCode:System.Web.IHttpHandler

{

public CheckCode()

{

//

// TODO: Add constructor logic here

//

}

#region IHttpHandler 成员

bool IHttpHandler.IsReusable

{

get { return false; }

}

void IHttpHandler.ProcessRequest(HttpContext context)

{

string allChar = "0123456789ABCDEFGHIJKLMNOPQRSTUWXYZ";

int len = allChar.Length;

int i = 0;

string res = "";

System.Random ra = new Random();

int next = -1;

string pc = "";

do

{

next = ra.Next(0, len - 1);

pc = allChar.Substring(next, 1);

if (res.IndexOf(pc) == -1)

{

i++;

res += pc;

}

} while (i < 6);

using (System.Drawing.Image image = new System.Drawing.Bitmap(100, 25))

{

Graphics g = Graphics.FromImage(image);

Font f = new System.Drawing.Font("Arial", 14, System.Drawing.FontStyle.Regular);

Brush b = System.Drawing.Brushes.Black;

g.Clear(Color.FromArgb(255, 255, 255));

g.DrawString(res, f, b, 2, 2);

//g.Clear(System.Drawing.Color.White);

Pen blackPen = new Pen(Color.Black, 0);

System.IO.MemoryStream ms = new System.IO.MemoryStream();

image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

context.Response.ClearContent();

context.Response.ContentType = "image/jpeg";

context.Response.BinaryWrite(ms.ToArray());

context.Response.End();

g.Dispose();

image.Dispose();

context.Session["CheckCode"] = res;

}

}

#endregion

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航