ved bruk av System; bruk av System.Data; ved bruk av System.Configuration; ved bruk av System.Collections; ved bruk av System.Web; bruk av System.Web.Security; bruk av System.Web.UI; bruk av System.Web.UI.WebControls; ved bruk av System.Web.UI.WebControls.WebParts; ved bruk av System.Web.UI.HtmlControls; bruk av System.Drawing.Design; ved bruk av System.Drawing; offentlig delvis klassebildekode : System.Web.UI.Page
{ beskyttet void Page_Load(objektavsender, EventArgs e)
{ Dette. CreateCheckCodeImage(RndNum());
}
privat streng RndNum()
{ int-nummer; char-kode; streng checkCode = String.Empty;
System.Tilfeldig tilfeldig = ny Tilfeldig();
for (int i = 0; Jeg < 4; i++)
{ tall = tilfeldig. Next(); hvis (tall % 2 == 0) kode = (karakter)('0' + (karakter)(antall % 10)); ellers kode = (karakter)('A' + (karakter)(nummer % 26)); sjekkKode += kode. ToString();
} Response.Cookies.Add (ny HttpCookie ("yzmcode", sjekkCode)); retursjekkkode;
} privat void CreateCheckCodeImage(streng checkCode)
{ hvis (checkCode == null || checkCode.Trim() == String.Empty) returnere; System.Drawing.Bitmap-bilde = ny System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafikk g = Grafikk.FraBilde(bilde); Prøv
{
//生成随机生成器 Tilfeldig tilfeldig = ny tilfeldig (tilfeldig();
//清空图片背景色 g.Klar (Farge.Hvit);
//画图片的背景噪音线 for (int i = 0; Jeg < 25; i++)
{ int x1 = tilfeldig. Neste(bilde. Bredde); int x2 = tilfeldig. Neste(bilde. Bredde); int y1 = tilfeldig. Neste(bilde. høyde); int y2 = tilfeldig. Neste(bilde. høyde); g.DrawLine (ny penn (farge.sølv), x1, y1, x2, y2);
}
Font font = ny System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Tegning.FontStyle.Italic)); System.Tegning.Tegning2D.LineærGradientPenselpensel = nytt System.Tegning.Tegning2D.LineærGradientBørste(ny rektangel(0, 0, bilde. Bredde, bilde. Høyde), Farge.Blå, Farge.Mørkrød, 1,2f, sann); g.DrawString (sjekkkode, font, pensel, 2, 2);
//画图片的前景噪音点 for (int i = 0; Jeg < 100; i++)
{ int x = tilfeldig. Neste(bilde. Bredde); int y = tilfeldig. Neste(bilde. høyde); bilde. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线 g.DrawRectangle(ny penn(farge.sølv), 0, 0, bilde. Bredde - 1, bilde. Høyde - 1); System.IO.MemoryStream ms = ny System.IO.MemoryStream(); bilde. Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "bilde/Gif"; Response.BinaryWrite(ms. ToArray());
} endelig
{ g. Dispose(); bilde. Dispone();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Kan ikke se klart? Endre verifiseringskoden" /> <asp:Knapp ID="Knapp1" runat="server" Tekst="Knapp" /></div>
//ogin.aspx.cs中的代码 Legg til i Du trenger ikke å skrive kode, klikk på "Kan ikke se klart?" Endre verifiseringskoden» for å oppdatere verifiseringskoden senere beskyttet void ChangeCode_Click(objektavsender, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 protected void Button1_Click(objektavsender, EventArgs e)
{ hvis (String.Compare(Request.Cookies["yzmcode"]. Verdi, a.Tekst, sant) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} ellers { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|