Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 18594|Odpowiedź: 1

[ASP.NET] asp.net zasada i kod generowania captcha obrazów

[Skopiuj link]
Opublikowano 02.04.2015 10:26:51 | | |
z wykorzystaniem System;
używając System.Data;
używając System.Configuration;
za pomocą System.Collections;
za pomocą System.Web;
używając System.Web.Security;
używając System.Web.UI;
używając System.Web.UI.WebControls;
używając System.Web.UI.WebControls.WebParts;
używając System.Web.UI.HtmlControls;
używając System.Drawing.Design;
używając System.Drawing;
publiczny częściowy kod obrazu : System.Web.UI.Page
{
chroniona pustka Page_Load(nadawca obiektu, EventArgs e)
{
Dokładnie tak. CreateCheckCodeImage(RndNum());

}

struna prywatna RndNum()
{
Numer INT;
kod char;
string checkCode = String.Empty;

System.Random random = nowy Random();

dla (int i = 0; Mam < 4; i++)
{
liczba = losowa. Next();
jeśli (liczba % 2 == 0)
kod = (char)('0' + (char)(numer % 10));
else
kod = (char)('A' + (char)(numer % 26));
checkCode += kod. ToString();
}
Response.Cookies.Add(new HttpCookie("yzmcode", checkCode));
return checkCode;
}
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
powrót;
obraz System.Drawing.Bitmap = nowy System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Grafika g = Grafika.FromImage(obraz);
spróbuj
{
//生成随机生成器
Losowy = nowy Losowy();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
dla (int i = 0; Mam < 25 lat; i++)
{
int x1 = losowy. Następny (obrazek. szerokość);
int x2 = losowe. Następny (obrazek. szerokość);
int y1 = losowe. Następny (obrazek. Wysokość);
int y2 = losowe. Następny (obrazek. Wysokość);
g.DrawLine (nowy długopis (Color.Silver), x1, y1, x2, y2);
}

Font font = nowy System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image). Szerokość, obraz. Wysokość), kolor.niebieski, kolor.ciemnoczerwony, 1.2f, prawdziwy);
g.DrawString(checkCode, czcionka, pędzel, 2, 2);
//画图片的前景噪音点
dla (int i = 0; Mam < 100; i++)
{
int x = losowy. Następny (obrazek. szerokość);
int y = losowy. Następny (obrazek. Wysokość);
obraz. SetPixel(x, y, Color.FromArgb(losowo. Next()));
}
//画图片的边框线
g.DrawRectangle(nowy długopis (kolor.Silver), 0, 0, obraz. Szerokość - 1, obraz. Wzrost - 1);
System.IO.MemoryStream ms = nowy System.IO.MemoryStream();
obraz. Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms. ToArray());
}
w końcu
{
g.Dispose();
obraz. Dispose();
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="ChangeCode" runat="server" text="Nie widzisz wyraźnie? Zmień kod weryfikacyjny" />
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码
Dodaj do
Nie musisz pisać kodu, kliknij "Nie widzisz wyraźnie?" Zmień kod weryfikacyjny", aby później odświeżyć kod weryfikacyjny
chroniony void ChangeCode_Click(nadawca obiektu, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
chroniona pustka Button1_Click(nadawca obiektu, EventArgs e)
{
if (String.Compare(Request.Cookies["yzmcode"]. Value, a.Text, true) != 0)
{
Response.Write("<scrip去掉t>alert('CAPTCHA error!')");</scrip去掉t>
}
else
{ Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}




Poprzedni:IE wyłącza zdalne wykonywanie poleceń
Następny:asp.net implementować ciasteczka do zapisywania wartości
Opublikowano 04.04.2015 10:58:42 |
Już potrafię go używać
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com