using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing.Imaging; using System.Drawing; using System.IO; public partial class image : System.Web.UI.Page ... { protected void Page_Load(object sender, EventArgs e) ...{ string tmp = RndNum(4); // HttpCookie a = new HttpCookie("ImageV",tmp); // Response.Cookies.Add(a); //2006-3-31 郭挺 上面二行是用COOKIE来存下面用SESSION保存 Session["ImageV"] = tmp; this.ValidateCode(tmp); } private void ValidateCode(string VNum) ...{ Bitmap Img = null; Graphics g=null; MemoryStream ms=null; int gheight=VNum.Length*12; Img=new Bitmap(gheight,25); g=Graphics.FromImage(Img); //背景颜色 g.Clear(Color.White); //文字字体 Font f=new Font("Arial Black",12); //文字颜色 SolidBrush s = new SolidBrush(Color.Gray); g.DrawString(VNum,f,s,3,3); ms=new MemoryStream(); Img.Save(ms,ImageFormat.Jpeg); Response.ClearContent(); Response.ContentType="image/Jpeg"; Response.BinaryWrite(ms.ToArray()); g.Dispose(); Img.Dispose(); Response.End(); } private string RndNum(int VcodeNum) ...{ string Vchar = "1,2,3,4,5,6,7,8,9,0";//A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z string[] VcArray=Vchar.Split(new Char [] ...{','}); string VNum=""; int temp=-1; Random rand=new Random(); for(int i=1;i<VcodeNum+1;i++) ...{ if(temp!=-1) ...{ rand=new Random(i*temp*unchecked((int)DateTime.Now.Ticks)); } //9 int t=rand.Next(9); if(temp!=-1&&temp==t) ...{ return RndNum(VcodeNum); } temp=t; VNum+=VcArray[t]; } return VNum; }}