Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 18594|Svar: 1

[ASP.NET] asp.net principen och koden för bild-captcha-generering

[Kopiera länk]
Publicerad på 2015-04-02 10:26:51 | | |
med System;
använda System.Data;
med System.Configuration;
med hjälp av System.Collections;
använda System.Web;
använda System.Web.Security;
använda System.Web.UI;
använda System.Web.UI.WebControls;
med System.Web.UI.WebControls.WebParts;
med System.Web.UI.HtmlControls;
med hjälp av System.Drawing.Design;
använda System.Drawing;
offentlig partiell klassbildkod : System.Web.UI.Page
{
skyddat tomrum Page_Load(objektavsändare, EventArgs e)
{
Exakt så. CreateCheckCodeImage(RndNum());

}

privat sträng RndNum()
{
int number;
char-kod;
sträng checkCode = String.Empty;

System.Random slumpmässig = ny Slumpmässig();

för (int i = 0; Jag < 4; i++)
{
antal = slumpmässigt. Next();
om (tal % 2 == 0)
kod = (tecken)('0' + (tecken)(antal % 10));
annars
kod = (tecken)('A' + (tecken)(tal % 26));
checkCode += kod. ToString();
}
Response.Cookies.Add (ny HttpCookie ("yzmcode", checkCode));
returcheckkod;
}
privat void CreateCheckCodeImage(sträng checkCode)
{
om (checkCode == null || checkCode.Trim() == String.Empty)
återvända;
System.Drawing.Bitmap-bild = ny System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Grafik g = Grafik.FrånBild(bild);
Försök
{
//生成随机生成器
Slumpmässig = ny Slumpmässig();
//清空图片背景色
g.Klar (Färg.Vit);
//画图片的背景噪音线
för (int i = 0; Jag < 25; i++)
{
int x1 = slumpmässig. Nästa (bild. bredd);
int x2 = slumpmässig. Nästa (bild. bredd);
int y1 = slumpmässig. Nästa (bild. Höjd);
int y2 = slumpmässig. Nästa (bild. Höjd);
g.DrawLine (ny Pen(Color.Silver), x1, y1, x2, y2);
}

Font font = ny System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Ritning.FontStil.Kursiv));
System.Ritning.Ritning2D.LinjärGradientPenselPensel = nytt System.Ritning.Ritning2D.LinjärGradientPensel (ny rektangel(0, 0, bild. Bredd, bild. Höjd), Färg. Blå, Färg. Mörkröd, 1,2 fot, sann);
g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点
för (int i = 0; Jag < 100; i++)
{
int x = slumpmässig. Nästa (bild. bredd);
int y = slumpmässig. Nästa (bild. Höjd);
Bild. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线
g.DrawRectangle(ny Pen(Color.Silver), 0, 0, bild. Bredd - 1, bild. Höjd - 1);
System.IO.MemoryStream ms = ny System.IO.MemoryStream();
Bild. Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "bild/gif";
Svar.BinärSkriv(ms. ToArray());
}
slutligen
{
g. Kasta bort ();
Bild. Göra sig av med();
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="Byt kod" runat="server" text="Kan du inte se tydligt? Ändra verifieringskoden" />
<asp:Knapp ID="Knapp1" runat="server" Text="Knapp" /></div>
//ogin.aspx.cs中的代码
Lägg till
Du behöver inte skriva någon kod, klicka på "Kan inte se klart?" Ändra verifieringskoden" för att uppdatera verifieringskoden senare
skyddat tomrum ChangeCode_Click(objektavsändare, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
skyddad void Button1_Click(objektavsändare, EventArgs e)
{
if (String.Compare(Request.Cookies["yzmcode"]. Värde, en.Text, sant) != 0)
{
Svar.Skriv ("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
}
annars
{ Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}




Föregående:IE dödar fjärrkommandoexekvering
Nästa:asp.net implementerar cookies för att spara värden
Publicerad på 2015-04-04 10:58:42 |
Jag kan redan använda det
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com