Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 18594|Odgovoriti: 1

[ASP.NET] asp.net načelo in koda generiranja slikovnega captcha

[Kopiraj povezavo]
Objavljeno na 2. 04. 2015 10:26:51 | | |
z uporabo System;
z uporabo System.Data;
z uporabo System.Configuration;
uporaba System.Collections;
uporaba System.Web;
uporaba System.Web.Security;
uporaba System.Web.UI;
uporaba System.Web.UI.WebControls;
uporaba System.Web.UI.WebControls.WebParts;
uporaba System.Web.UI.HtmlControls;
z uporabo System.Drawing.Design;
uporaba System.Drawing;
Javna delna razredna slikovna koda : System.Web.UI.Page
{
zaščitena praznina Page_Load(pošiljatelj objekta, EventArgs e)
{
to. CreateCheckCodeImage(RndNum());

}

zasebna struna RndNum()
{
INT številka;
char koda;
string checkCode = String.Empty;

System.Random random = novi Random();

za (int i = 0; Jaz < 4; i++)
{
število = naključno. Next();
if (število % 2 == 0)
koda = (char)('0' + (char)(številka % 10));
else
koda = (char)('A' + (char)(številka % 26));
checkCode += koda. ToString();
}
Response.Cookies.Add(novi HttpCookie("yzmcode", checkCode));
return checkCode;
}
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
vrnitev;
System.Drawing.Bitmap slika = nova System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Grafika g = Grafika.FromImage(slika);
poskusi
{
//生成随机生成器
Naključno = novo Naključno ();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
za (int i = 0; Stara sem < 25 let; i++)
{
int x1 = naključno. Naslednje (slika. Širina);
int x2 = naključno. Naslednje (slika. Širina);
int y1 = naključno. Naslednje (slika. višina);
int y2 = naključno. Naslednje (slika. višina);
g.DrawLine (novo pero (Color.Silver), x1, y1, x2, y2);
}

Font font = novi System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = novi System.Drawing.Drawing2D.LinearGradientBrush(novi pravokotnik(0, 0, slika. Širina, podoba. višina), barva.modra, barva.temnordeča, 1,2f, resnično);
g.DrawString(checkCode, pisava, čopič, 2, 2);
//画图片的前景噪音点
za (int i = 0; Jaz < 100; i++)
{
int x = naključno. Naslednje (slika. Širina);
int y = naključno. Naslednje (slika. višina);
slike. SetPixel(x, y, Color.FromArgb(naključno. Next()));
}
//画图片的边框线
g.DrawRectangle(novo pero (barva.Silver), 0, 0, slika. Širina - 1, slika. Višina - 1);
System.IO.MemoryStream ms = novi System.IO.MemoryStream();
slike. Shrani (ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "slika/gif";
Response.BinaryWrite(gospa ToArray());
}
končno
{
g. Dispose();
slike. Dispose();
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="ChangeCode" runat="server" text="Ne vidiš jasno? Spremeni verifikacijsko kodo" />
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码
Dodaj k
Ni ti treba pisati nobene kode, klikni "Ne vidiš jasno?" "Spremeni verifikacijsko kodo" za kasnejšo osvežitev verifikacijske kode
zaščitena praznina ChangeCode_Click(pošiljatelj objekta, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
zaščiten void Button1_Click(object sender, EventArgs e)
{
if (String.Compare(Request.Cookies["yzmcode"]. Vrednost, a.Besedilo, res) != 0)
{
Response.Write("<scrip去掉t>alert('CAPTCHA error!')"</scrip去掉t>);
}
else
{ Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}




Prejšnji:IE prekine izvajanje oddaljenih ukazov
Naslednji:asp.net implementirati piškotke za shranjevanje vrednosti
Objavljeno na 4. 04. 2015 10:58:42 |
Že ga lahko uporabljam
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com