Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 18594|Svare: 1

[ASP.NET] asp.net prinsippet og koden for generering av bilde-captcha

[Kopier lenke]
Publisert på 02.04.2015 10:26:51 | | |
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>"; }
}




Foregående:IE dreper fjernkommandoutførelse
Neste:asp.net implementere informasjonskapsler for å lagre verdier
Publisert på 04.04.2015 10:58:42 |
Jeg kan allerede bruke det
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com