ved brug af System; ved brug af System.Data; ved brug af System.Configuration; ved brug af System.Collections; brugte System.Web; ved brug af System.Web.Security; ved brug af System.Web.UI; ved brug af System.Web.UI.WebControls; ved brug af System.Web.UI.WebControls.WebParts; ved brug af System.Web.UI.HtmlControls; ved brug af System.Drawing.Design; brug af System.Drawing; offentlig delvis klassebilledkode : System.Web.UI.Page
{ beskyttet void Page_Load(objektafsender, EventArgs e)
{ dette. CreateCheckCodeImage(RndNum());
}
privat streng RndNum()
{ Int-nummer; char-kode; streng checkCode = String.Empty;
System.Tilfældig tilfældig = ny tilfældig (tilfældig();
for (int i = 0; Jeg < 4; i++)
{ Tal = tilfældigt. Next(); hvis (tal % 2 == 0) kode = (tegn) ('0' + (tegn (tegn ) (tal % 10)); ellers kode = (tegn) (A' + (tegn (tegn % 26)); tjekkode += kode. ToString();
} Response.Cookies.Add (ny HttpCookie ("yzmcode", tjekkode)); returcheckkode;
} privat void CreateCheckCodeImage(streng checkCode)
{ hvis (checkCode == null || checkCode.Trim() == String.Empty) vender tilbage; System.Drawing.Bitmap-billede = nyt System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafik g = Grafik.FraBillede(billede); Prøv
{
//生成随机生成器 Tilfældig tilfældig = ny tilfældig (tilfældig();
//清空图片背景色 g.Klar (Farve.Hvid);
//画图片的背景噪音线 for (int i = 0; Jeg < 25; i++)
{ int x1 = tilfældig. Næste (billede. Bredde); int x2 = tilfældig. Næste (billede. Bredde); int y1 = tilfældig. Næste (billede. højde); int y2 = tilfældig. Næste (billede. højde); g.DrawLine (ny Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = nyt System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Tegning.SkrifttypeStil.Kursiv;; System.Tegning.Tegning2D.LinearGradientBrushbrush = nyt System.Drawing.Drawing2D.LinearGradientBrush(ny Rektangel(0, 0, billede. Bredde, billede. Højde), Farve.Blå, Farve.Mørkerød, 1,2f, sand); g.DrawString(tjekkode, skrifttype, pensel, 2, 2);
//画图片的前景噪音点 for (int i = 0; Jeg < 100; i++)
{ int x = tilfældig. Næste (billede. Bredde); int y = tilfældig. Næste (billede. højde); billede. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线 g.DrawRectangle(ny Pen(Color.Silver), 0, 0, billede. Bredde - 1, billede. Højde - 1); System.IO.MemoryStream ms = ny System.IO.MemoryStream(); billede. Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms. ToArray());
} endelig
{ g. Afhændig(); billede. Bortskaff();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Kan ikke se det tydeligt? Skift verifikationskoden" /> <asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码 Tilføj til Du behøver ikke skrive kode, klik på "Kan ikke se klart?" Skift verifikationskoden" for at opdatere verifikationskoden senere protected void ChangeCode_Click(objektafsender, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 beskyttet void Button1_Click(objektafsender, EventArgs e)
{ hvis (String.Compare(Request.Cookies["yzmcode"]. Værdi, en.Tekst, sand) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} ellers { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|