mit System; unter Verwendung von System.Data; unter Verwendung von System.Configuration; unter Verwendung von System.Collections; mit System.Web; Nutzung von System.Web.Security; unter Verwendung von System.Web.UI; unter Verwendung von System.Web.UI.WebControls; unter Verwendung von System.Web.UI.WebControls.WebParts; unter Verwendung von System.Web.UI.HtmlControls; mit System.Drawing.Design; unter Verwendung von System.Drawing; Öffentlicher Teilklassen-Bildcode : System.Web.UI.Page
{ protected void Page_Load(Objektsender, EventArgs e)
{ das. CreateCheckCodeImage(RndNum());
}
private Saite RndNum()
{ Int Number; Char-Code; String checkCode = String.Empty;
System.Zufällig = neues Zufall();
für (int i = 0; Ich < 4; i++)
{ Zahl = zufällig. Next(); wenn (Zahl % 2 == 0) Code = (Char)('0' + (Char)(Anzahl % 10)); oder Code = (Char)('A' + (Char)(Number % 26)); checkCode += Code. ToString();
} Response.Cookies.Add (neuer HttpCookie("yzmcode", CheckCode)); Rückgabe-ScheckCode;
} private void CreateCheckCodeImage(String checkCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) Rückgabe; System.Drawing.Bitmap Bild = neues System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafik g = Grafik.VonBild(Bild); Versuch es
{
//生成随机生成器 Zufällig zufällig = neues Zufall();
//清空图片背景色 g.Klar (Farbe.Weiß);
//画图片的背景噪音线 für (int i = 0; Ich < 25; i++)
{ int x1 = zufällig. Nächster (Bild. Breite); int x2 = zufällig. Nächster (Bild. Breite); int y1 = zufällig. Nächster (Bild. Höhe); int y2 = zufällig. Nächster (Bild. Höhe); g.DrawLine (neuer Stift (Farb.Silber), x1, y1, x2, y2);
}
Font font = neues System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Zeichnung.SchriftStil.Kursiv)); System.Zeichnung.Zeichnung2D.LinearGradientPinselPinsel = neues System.Zeichnung.Zeichnung2D.LinearGradientBrush(neues Rechteck(0, 0, Bild. Breite, Bild. Größe), Farbe. Blau, Farbe. Dunkelrot, 1,2 f, wahr); g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点 für (int i = 0; Ich < 100; i++)
{ int x = zufällig. Nächster (Bild. Breite); int y = zufällig. Nächster (Bild. Höhe); Bild. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线 g.DrawRectangle(neuer Stift(Farb.Silber), 0, 0, Bild. Breite – 1, Bild. Größe – 1); System.IO.MemoryStream ms = neues System.IO.MemoryStream(); Bild. Speichern(ms, System.Zeichnung.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms. ToArray());
} endlich
{ g. Entsorgen(); Bild. Entsorgen();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Nicht klar sehen? Ändere den Verifizierungscode" /> <asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码 Hinzufügen zu Du musst keinen Code schreiben, klicke auf "Kann nicht klar sehen?" Ändern Sie den Verifizierungscode", um den Verifizierungscode später zu aktualisieren protected void ChangeCode_Click(Objektsender, EventArgs e.)
{
}
//提交按钮代码这里是通过cookies来验证的 protected void Button1_Click(Objektsender, EventArgs e)
{ if (String.Compare(Request.Cookies["yzmcode"]. Wert, a.Text, wahr) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
} oder { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|