med System; använda System.Data; med System.Configuration; med hjälp av System.Collections; använda System.Web; använda System.Web.Security; använda System.Web.UI; använda System.Web.UI.WebControls; med System.Web.UI.WebControls.WebParts; med System.Web.UI.HtmlControls; med hjälp av System.Drawing.Design; använda System.Drawing; offentlig partiell klassbildkod : System.Web.UI.Page
{ skyddat tomrum Page_Load(objektavsändare, EventArgs e)
{ Exakt så. CreateCheckCodeImage(RndNum());
}
privat sträng RndNum()
{ int number; char-kod; sträng checkCode = String.Empty;
System.Random slumpmässig = ny Slumpmässig();
för (int i = 0; Jag < 4; i++)
{ antal = slumpmässigt. Next(); om (tal % 2 == 0) kod = (tecken)('0' + (tecken)(antal % 10)); annars kod = (tecken)('A' + (tecken)(tal % 26)); checkCode += kod. ToString();
} Response.Cookies.Add (ny HttpCookie ("yzmcode", checkCode)); returcheckkod;
} privat void CreateCheckCodeImage(sträng checkCode)
{ om (checkCode == null || checkCode.Trim() == String.Empty) återvända; System.Drawing.Bitmap-bild = ny System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafik g = Grafik.FrånBild(bild); Försök
{
//生成随机生成器 Slumpmässig = ny Slumpmässig();
//清空图片背景色 g.Klar (Färg.Vit);
//画图片的背景噪音线 för (int i = 0; Jag < 25; i++)
{ int x1 = slumpmässig. Nästa (bild. bredd); int x2 = slumpmässig. Nästa (bild. bredd); int y1 = slumpmässig. Nästa (bild. Höjd); int y2 = slumpmässig. Nästa (bild. Höjd); g.DrawLine (ny Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = ny System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Ritning.FontStil.Kursiv)); System.Ritning.Ritning2D.LinjärGradientPenselPensel = nytt System.Ritning.Ritning2D.LinjärGradientPensel (ny rektangel(0, 0, bild. Bredd, bild. Höjd), Färg. Blå, Färg. Mörkröd, 1,2 fot, sann); g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点 för (int i = 0; Jag < 100; i++)
{ int x = slumpmässig. Nästa (bild. bredd); int y = slumpmässig. Nästa (bild. Höjd); Bild. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线 g.DrawRectangle(ny Pen(Color.Silver), 0, 0, bild. Bredd - 1, bild. Höjd - 1); System.IO.MemoryStream ms = ny System.IO.MemoryStream(); Bild. Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "bild/gif"; Svar.BinärSkriv(ms. ToArray());
} slutligen
{ g. Kasta bort (); Bild. Göra sig av med();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="Byt kod" runat="server" text="Kan du inte se tydligt? Ändra verifieringskoden" /> <asp:Knapp ID="Knapp1" runat="server" Text="Knapp" /></div>
//ogin.aspx.cs中的代码 Lägg till Du behöver inte skriva någon kod, klicka på "Kan inte se klart?" Ändra verifieringskoden" för att uppdatera verifieringskoden senare skyddat tomrum ChangeCode_Click(objektavsändare, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 skyddad void Button1_Click(objektavsändare, EventArgs e)
{ if (String.Compare(Request.Cookies["yzmcode"]. Värde, en.Text, sant) != 0)
{ Svar.Skriv ("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} annars { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|