Validate.cs:
---------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing.Imaging;
namespace message
{
/// validate 的摘要说明。
public class validate : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strNum=Rndnum();
Session["Num0"]=strNum;
ValidateCode(Session["Num0"].ToString());
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
public string Rndnum()
{
int j1;
string strChoice="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
string [] strResult = strChoice.Split(new Char [] {','});
string strReturn="";
Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));
for(int i=0;i<4;i++)
{
Random rnd1=new Random(rnd.Next()*unchecked ((int)DateTime.Now.Ticks));
j1=rnd1.Next(35);
rnd=new Random (rnd.Next()*unchecked((int)DateTime.Now.Ticks));
strReturn=strReturn + strResult[j1].ToString();
}
return strReturn;
}
public void ValidateCode(string vnum)
{
MemoryStream ms=new MemoryStream();
double Height=(vnum.Length)*12;
int gHeight=Convert.ToInt32(Height);
Bitmap img=new Bitmap(gHeight,20);
Graphics g=Graphics.FromImage(img);
g.DrawString(vnum,(new Font ("幼圆",12)),(new SolidBrush(Color.Red)),1,4);
img.Save(ms,ImageFormat.Png);
Response.ClearContent();
Response.ContentType="image/Bmp";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
img.Dispose();
Response.End();
}
}
}
调用方法:用image图象联接上就可以了ImageUrl="validate.aspx"
验证验证码是否相同:
private void txtvalidate_TextChanged(object sender, System.EventArgs e)
{
if(this.txtvalidate.Text==(string)Session["Num0"])
{
}
else
{
Response.Write("<script Language = 'javascript'>alert('验证码错误!');;window.location.replace('login_userinfo_add.aspx');</script>");
}
}