Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 18594|Antwoord: 1

[ASP.NET] asp.net het principe en de code van beeld-captcha-generatie

[Link kopiëren]
Geplaatst op 02-04-2015 10:26:51 | | |
met behulp van System;
gebruik van System.Data;
gebruikmakend van System.Configuration;
met behulp van System.Collections;
gebruik van System.Web;
gebruik van System.Web.Security;
gebruik van System.Web.UI;
gebruik van System.Web.UI.WebControls;
gebruik van System.Web.UI.WebControls.WebParts;
gebruik van System.Web.UI.HtmlControls;
met System.Drawing.Design;
met behulp van System.Drawing;
publieke partiële klasse imagecode : System.Web.UI.Page
{
beschermde void Page_Load(objectafzender, EventArgs e)
{
dit. CreateCheckCodeImage(RndNum());

}

privé snaar RndNum()
{
int number;
char code;
string checkCode = String.Empty;

System.Willekeurig willekeurig = nieuw Willekeurig();

voor (int i = 0; Ik < 4; i++)
{
Aantal = willekeurig. Next();
als (getal % 2 == 0)
code = (karakter)('0' + (karakter)(aantal % 10));
anders
code = (char)('A' + (char)(number % 26));
checkCode += code. ToString();
}
Response.Cookies.Add (nieuwe HttpCookie ("yzmcode", checkCode));
retourcontrolecode;
}
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
terugkeren;
System.Drawing.Bitmap-afbeelding = nieuw System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
Probeer het
{
//生成随机生成器
Willekeurig willekeurig = nieuw willekeurig (willekeurig);
//清空图片背景色
g.Transparant (Kleur.Wit);
//画图片的背景噪音线
voor (int i = 0; Ik < 25; i++)
{
int x1 = willekeurig. Volgende(afbeelding. breedte);
int x2 = willekeurig. Volgende(afbeelding. breedte);
int y1 = willekeurig. Volgende(afbeelding. Hoogte);
int y2 = willekeurig. Volgende(afbeelding. Hoogte);
g.DrawLine (nieuwe Pen(Kleur.Zilver), x1, y1, x2, y2);
}

Font font = nieuw System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Cursief));
Systeem.Tekening.Tekening2D.LineairGradiëntPenseelPenseelkwast = nieuw Systeem.Tekening.Tekening2D.LineairGradiëntPenseel(nieuwe Rechthoek(0, 0, afbeelding. Breedte, afbeelding. Hoogte), Kleur.Blauw, Kleur.Donkerrood, 1,2f, waar);
g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点
voor (int i = 0; Ik < 100; i++)
{
int x = willekeurig. Volgende(afbeelding. breedte);
int y = willekeurig. Volgende(afbeelding. Hoogte);
Afbeelding. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线
g.DrawRectangle(nieuwe Pen(Color.Silver), 0, 0, afbeelding. Breedte - 1, afbeelding. Lengte - 1);
System.IO.MemoryStream ms = nieuwe System.IO.MemoryStream();
Afbeelding. Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "afbeelding/gif";
Response.BinaryWrite(ms. ToArray());
}
eindelijk
{
g.Ontdoen();
Afbeelding. Verwijderen();
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="ChangeCode" runat="server" text="Niet duidelijk zien? Verander de verificatiecode" />
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码
Toevoegen aan
Je hoeft geen code te schrijven, klik op "Kan niet duidelijk zien?" Verander de verificatiecode" om de verificatiecode later te verversen
beschermde void ChangeCode_Click(objectafzender, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
beschermde void Button1_Click(objectafzender, EventArgs e.)
{
if (String.Compare(Request.Cookies["yzmcode"]. Waarde, a.Tekst, waar) != 0)
{
Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
}
anders
{ Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}




Vorig:IE schakelt de uitvoering van externe commando's uit
Volgend:asp.net cookies implementeren om waarden op te slaan
Geplaatst op 04-04-2015 10:58:42 |
Ik kan het al gebruiken
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com