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>"; }
}
|