先在Image.aspx中 写验证图片代码
在.CS文件中
public class image : System.Web.UI.Page
... {
private void Page_Load(object sender, System.EventArgs e)
...{
string tmp = RndNum(4);
HttpCookie a = new HttpCookie("ImageV",tmp);
Response.Cookies.Add(a);
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 ",10);
//文字颜色
SolidBrush s=new SolidBrush(Color.Black);
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="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[] 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));
}
int t=rand.Next(35);
if(temp!=-1&&temp==t)
...{
return RndNum(VcodeNum);
}
temp=t;
VNum+=VcArray[t];
}
return VNum;
}
然后在注册页面中写Javascript脚本
< script language = " javascript " type = " text/javascript " >
function reloadimage(url)
... {
document.Form_RegisterBaseInfo.img1.src=url;
}
</ script >
再在页面中写超链接<A>……
<
A href
=
"
javascript:reloadimage('image.aspx?'+Math.random())
"
>
< IMG id = " img1 " style = " WIDTH: 64px; HEIGHT: 30px " height = " 30 " alt = " 更换验证码 " src = " image.aspx " width = " 64 " border = " 0 " >
</ A >
< IMG id = " img1 " style = " WIDTH: 64px; HEIGHT: 30px " height = " 30 " alt = " 更换验证码 " src = " image.aspx " width = " 64 " border = " 0 " >
</ A >
这里主要在调用Image.aspx时通过调用Math.random()函数随机产生图片