Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 18594|Antwort: 1

[ASP.NET] asp.net das Prinzip und den Code der Bild-Captcha-Generierung

[Link kopieren]
Veröffentlicht am 02.04.2015 10:26:51 | | |
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>"; }
}




Vorhergehend:IE beendet die Fernbefehlsausführung
Nächster:asp.net implementiere Cookies, um Werte zu speichern
Veröffentlicht am 04.04.2015 10:58:42 |
Ich kann es schon benutzen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com