met behulp van System; gebruik van System.Data; gebruikmakend van System.Configuration; met behulp van System.Collections; gebruik van System.Web; gebruik van System.Web.Security; gebruik van System.Web.UI; gebruik van System.Web.UI.WebControls; gebruik van System.Web.UI.WebControls.WebParts; gebruik van System.Web.UI.HtmlControls; met System.Drawing.Design; met behulp van System.Drawing; publieke partiële klasse imagecode : System.Web.UI.Page
{ beschermde void Page_Load(objectafzender, EventArgs e)
{ dit. CreateCheckCodeImage(RndNum());
}
privé snaar RndNum()
{ int number; char code; string checkCode = String.Empty;
System.Willekeurig willekeurig = nieuw Willekeurig();
voor (int i = 0; Ik < 4; i++)
{ Aantal = willekeurig. Next(); als (getal % 2 == 0) code = (karakter)('0' + (karakter)(aantal % 10)); anders code = (char)('A' + (char)(number % 26)); checkCode += code. ToString();
} Response.Cookies.Add (nieuwe HttpCookie ("yzmcode", checkCode)); retourcontrolecode;
} private void CreateCheckCodeImage(string checkCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) terugkeren; System.Drawing.Bitmap-afbeelding = nieuw System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Graphics g = Graphics.FromImage(image); Probeer het
{
//生成随机生成器 Willekeurig willekeurig = nieuw willekeurig (willekeurig);
//清空图片背景色 g.Transparant (Kleur.Wit);
//画图片的背景噪音线 voor (int i = 0; Ik < 25; i++)
{ int x1 = willekeurig. Volgende(afbeelding. breedte); int x2 = willekeurig. Volgende(afbeelding. breedte); int y1 = willekeurig. Volgende(afbeelding. Hoogte); int y2 = willekeurig. Volgende(afbeelding. Hoogte); g.DrawLine (nieuwe Pen(Kleur.Zilver), x1, y1, x2, y2);
}
Font font = nieuw System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Cursief)); Systeem.Tekening.Tekening2D.LineairGradiëntPenseelPenseelkwast = nieuw Systeem.Tekening.Tekening2D.LineairGradiëntPenseel(nieuwe Rechthoek(0, 0, afbeelding. Breedte, afbeelding. Hoogte), Kleur.Blauw, Kleur.Donkerrood, 1,2f, waar); g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点 voor (int i = 0; Ik < 100; i++)
{ int x = willekeurig. Volgende(afbeelding. breedte); int y = willekeurig. Volgende(afbeelding. Hoogte); Afbeelding. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线 g.DrawRectangle(nieuwe Pen(Color.Silver), 0, 0, afbeelding. Breedte - 1, afbeelding. Lengte - 1); System.IO.MemoryStream ms = nieuwe System.IO.MemoryStream(); Afbeelding. Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "afbeelding/gif"; Response.BinaryWrite(ms. ToArray());
} eindelijk
{ g.Ontdoen(); Afbeelding. Verwijderen();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Niet duidelijk zien? Verander de verificatiecode" /> <asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码 Toevoegen aan Je hoeft geen code te schrijven, klik op "Kan niet duidelijk zien?" Verander de verificatiecode" om de verificatiecode later te verversen beschermde void ChangeCode_Click(objectafzender, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 beschermde void Button1_Click(objectafzender, EventArgs e.)
{ if (String.Compare(Request.Cookies["yzmcode"]. Waarde, a.Tekst, waar) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} anders { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|