项目有两个页面,default.aspx和VerifyCode.aspx,详细代码如下
Default.aspx页面
<body>
<form id="form1" runat="server">
<div align="center">
<h3>图片验证码的使用</h3>
<asp:TextBox ID="txtVerifyCode" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" οnclick="Button1_Click" />
<img alt="看不清?点击跟换" src="VerifyCode.aspx" οnclick="this.src=this.src+'?'" />
</div>
</form>
</body>
Default.aspx.cs页面
protected void Button1_Click(object sender, EventArgs e)
{
if (String.Compare(Session["CheckCode"].ToString(), this.txtVerifyCode.Text.ToString().Trim(), true) != 0)
{
Response.Write("<script languange='javascript'>alert('校验码错误!');</script>");
return;
}
else
{
Response.Write("<script languange='javascript'>alert('校验码正确!');</script>");
return;
}
}
VerifyCode.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
Random x = new Random();
decimal c = (decimal)x.NextDouble() * 10000;
string code = decimal.Round(c, 0).ToString();
System.Drawing.Bitmap image = new System.Drawing.Bitmap(52,20);
Graphics g = Graphics.FromImage(image);
g.Clear(Color.White);
Font f;
Brush b;
f = new System.Drawing.Font("Freestyle Script", 11, System.Drawing.FontStyle.Italic);
b = new System.Drawing.SolidBrush(Color.BlueViolet);
for (int i = 0; i < 20; i++)
{
g.DrawLine(new Pen(Color.Gainsboro, 0), new Point(0, i), new Point(54, i));
}
g.DrawString(code,f,b,8,2);
g.DrawRectangle(new Pen(Color.Gainsboro, 0), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.GetBuffer());
g.Dispose();
ms.Close();
ms = null;
Session["CheckCode"] = code.ToUpper();
}