z uporabo System; z uporabo System.Data; z uporabo System.Configuration; uporaba System.Collections; uporaba System.Web; uporaba System.Web.Security; uporaba System.Web.UI; uporaba System.Web.UI.WebControls; uporaba System.Web.UI.WebControls.WebParts; uporaba System.Web.UI.HtmlControls; z uporabo System.Drawing.Design; uporaba System.Drawing; Javna delna razredna slikovna koda : System.Web.UI.Page
{ zaščitena praznina Page_Load(pošiljatelj objekta, EventArgs e)
{ to. CreateCheckCodeImage(RndNum());
}
zasebna struna RndNum()
{ INT številka; char koda; string checkCode = String.Empty;
System.Random random = novi Random();
za (int i = 0; Jaz < 4; i++)
{ število = naključno. Next(); if (število % 2 == 0) koda = (char)('0' + (char)(številka % 10)); else koda = (char)('A' + (char)(številka % 26)); checkCode += koda. ToString();
} Response.Cookies.Add(novi HttpCookie("yzmcode", checkCode)); return checkCode;
} private void CreateCheckCodeImage(string checkCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) vrnitev; System.Drawing.Bitmap slika = nova System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafika g = Grafika.FromImage(slika); poskusi
{
//生成随机生成器 Naključno = novo Naključno ();
//清空图片背景色 g.Clear(Color.White);
//画图片的背景噪音线 za (int i = 0; Stara sem < 25 let; i++)
{ int x1 = naključno. Naslednje (slika. Širina); int x2 = naključno. Naslednje (slika. Širina); int y1 = naključno. Naslednje (slika. višina); int y2 = naključno. Naslednje (slika. višina); g.DrawLine (novo pero (Color.Silver), x1, y1, x2, y2);
}
Font font = novi System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)); System.Drawing.Drawing2D.LinearGradientBrush brush = novi System.Drawing.Drawing2D.LinearGradientBrush(novi pravokotnik(0, 0, slika. Širina, podoba. višina), barva.modra, barva.temnordeča, 1,2f, resnično); g.DrawString(checkCode, pisava, čopič, 2, 2);
//画图片的前景噪音点 za (int i = 0; Jaz < 100; i++)
{ int x = naključno. Naslednje (slika. Širina); int y = naključno. Naslednje (slika. višina); slike. SetPixel(x, y, Color.FromArgb(naključno. Next()));
}
//画图片的边框线 g.DrawRectangle(novo pero (barva.Silver), 0, 0, slika. Širina - 1, slika. Višina - 1); System.IO.MemoryStream ms = novi System.IO.MemoryStream(); slike. Shrani (ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "slika/gif"; Response.BinaryWrite(gospa ToArray());
} končno
{ g. Dispose(); slike. Dispose();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Ne vidiš jasno? Spremeni verifikacijsko kodo" /> <asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码 Dodaj k Ni ti treba pisati nobene kode, klikni "Ne vidiš jasno?" "Spremeni verifikacijsko kodo" za kasnejšo osvežitev verifikacijske kode zaščitena praznina ChangeCode_Click(pošiljatelj objekta, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 zaščiten void Button1_Click(object sender, EventArgs e)
{ if (String.Compare(Request.Cookies["yzmcode"]. Vrednost, a.Besedilo, res) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} else { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|