Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 18594|Válasz: 1

[ASP.NET] asp.net a kép captcha generálásának elvét és kódját

[Linket másol]
Közzétéve 2015. 04. 02. 10:26:51 | | |
System használatával;
a System.Data használatával;
a System.Configuration használatával;
a System.Collections használatával;
a System.Web használatával;
a System.Web.Security használatával;
a System.Web.UI használatával;
System.Web.UI.WebControl használatával;
a System.Web.UI.WebControls.WebParts használatával;
System.Web.UI.HtmlControls használatával;
System.Drawing.Design használatával;
System.Drawing használatával;
Public partial class imagecode : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ez. CreateCheckCodeImage(RndNum());

}

private string RndNum()
{
int szám;
karakterkód;
string checkCode = String.Empty;

System.Random random = új Random();

for (int i = 0; I < 4; i++)
{
szám = véletlenszerű. Next();
ha (szám % 2 == 0)
kód = (karakter)('0' + (karakter)(szám % 10));
más
code = (karakter)('A' + (karakter)(szám % 26));
checkCode += kód. ToString();
}
Response.Cookies.Add(új HttpCookie("yzmcode", checkCode));
return checkCode;
}
private void CreateCheckCodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == String.Empty)
visszatérés;
System.Drawing.Bitmap image = új System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image);
próbáld ki
{
//生成随机生成器
Random random = új Random();
//清空图片背景色
g.Clear (szín.fehér);
//画图片的背景噪音线
for (int i = 0; 25 <; i++)
{
int x1 = véletlenszerű. Következő(kép. szélesség);
int x2 = véletlenszerű. Következő(kép. szélesség);
int y1 = véletlenszerű. Következő(kép. magasság);
int y2 = véletlenszerű. Következő(kép. magasság);
g.DrawLine (új toll (szín.ezüst), x1, y1, x2, y2);
}

Betűtípus = új 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, kép. Szélesség, kép. magasság), szín.kék, szín.sötétvörös, 1.2f, valós);
g.DrawString(checkCode, betűtípus, ecset, 2, 2);
//画图片的前景噪音点
for (int i = 0; 100 < vagyok; i++)
{
int x = véletlenszerű. Következő(kép. szélesség);
int y = véletlenszerű. Következő(kép. magasság);
kép. SetPixel(x, y, Color.FromArgb(random. Next()));
}
//画图片的边框线
g.DrawRectangle(új toll (szín.ezüst), 0, 0, kép. Szélesség - 1, kép. Magasság - 1);
System.IO.MemoryStream ms = új System.IO.MemoryStream();
kép. Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "kép/Gif";
Válasz.BinaryWrite(ms. ToArray());
}
végül
{
g.Megszabadítani();
kép. Dobás (elhelyezés);
}
}

}
//验证码使用页login.aspx中的代码
<asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" />
<asp:LinkButton ID="ChangeCode" runat="szerver" text="Nem látok tisztán? Változtasd meg a hitelesítési kódot" />
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码
Add ki
Nem kell kódot írnod, kattints a "Nem látok tisztán?" Változtasd meg a hitelesítési kódot" – hogy később frissítse a hitelesítési kódot
védett void ChangeCode_Click(objektum küldő, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的
protected void Button1_Click(object sender, EventArgs e)
{
if (String.Compare(Request.Cookies["yzmcode"]. Érték, a.Text, true) != 0)
{
Response.Write("<scrip去掉t>alert('CAPTCHA error!')</scrip去掉t>");
}
más
{ Response.Write("<scrip去掉t>alert('Validát!!')</scrip去掉t>"; }
}




Előző:IE megöli a távoli parancsvégrehajtást
Következő:asp.net cookie-kat valósítsanak meg értékek mentésére
Közzétéve 2015. 04. 04. 10:58:42 |
Már használhatom
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com