folosind Sistem; folosind System.Data; folosind System.Configuration; folosind System.Collections; folosind System.Web; folosind System.Web.Security; folosind System.Web.UI; folosind System.Web.UI.WebControls; folosind System.Web.UI.WebControls.WebParts; folosind System.Web.UI.HtmlControls; folosind System.Drawing.Design; folosind System.Drawing; Cod imagine de clasă parțială publică : System.Web.UI.Page
{ vid protejat Page_Load(object sender, EventArgs e)
{ Asta. CreateCheckCodeImage(RndNum());
}
șirul privat RndNum()
{ număr int; cod char; verificare string = String.Empty;
System.Random random = new Random();
pentru (int i = 0; Am < 4; i++)
{ număr = aleatoriu. Next(); dacă (numărul % 2 == 0) cod = (carac)('0' + (caracter)(număr % 10)); altfel cod = (car) )('A' + (char) (număr % 26)); checkCode += cod. ToString();
} Response.Cookies.Add(noul HttpCookie("yzmcode", checkCode)); return checkCode;
} void privat CreateCheckCodeImage(string checkCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) returnare; Imagine System.Drawing.Bitmap = nou System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Grafică g = Grafică.DinImagine(imagine); încearcă
{
//生成随机生成器 Random random = noul Random();
//清空图片背景色 g.Clear (Culoare.Alb);
//画图片的背景噪音线 pentru (int i = 0; Am < 25; i++)
{ int x1 = aleatoriu. Următorul (imagine. Lățime); int x2 = aleatoriu. Următorul (imagine. Lățime); int y1 = aleatoriu. Următorul (imagine. Înălțime); int y2 = aleatoriu. Următorul (imagine. Înălțime); g.DrawLine(nou pix (Color.Argintiu), x1, y1, x2, y2);
}
Font = noul 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, imagine). Lățime, imagine. Înălțime), Color.Blue, Color.DarkRed, 1.2f, adevărat); g.DrawString(checkCode, font, brush, 2, 2);
//画图片的前景噪音点 pentru (int i = 0; Am < 100; i++)
{ int x = aleatoriu. Următorul (imagine. Lățime); int y = aleatoriu. Următorul (imagine. Înălțime); imagine. SetPixel(x, y, Color.FromArgb(random. Următorul ()));
}
//画图片的边框线 g.DrawRectangle (nou Pix (Color.Argintiu), 0, 0, imagine. Lățime - 1, imagine. Înălțime - 1); System.IO.MemoryStream ms = noul System.IO.MemoryStream(); imagine. Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Răspuns.Conținut Clar(); Response.ContentType = "imagine/Gif"; Răspuns.BinaryWrite(dna. ToArray());
} în sfârșit
{ g.Elimină(); imagine. Elimină();
}
}
}
//验证码使用页login.aspx中的代码 <asp:ImageButton ID="yzm" runat="server" ImageUrl="imagecode.aspx" /> <asp:LinkButton ID="ChangeCode" runat="server" text="Nu poți vedea clar? Schimbă codul de verificare" /> <asp:Button ID="Button1" runat="server" Text="Button" /></div>
//ogin.aspx.cs中的代码 Adaugă la Nu trebuie să scrii cod, apasă pe "Nu poți vedea clar?" Schimbă codul de verificare" pentru a reîmprospăta codul de verificare ulterior Vid protejat ChangeCode_Click(obiect emițător, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 Vid protejat Button1_Click(object sender, EventArgs e)
{ if (String.Compare(Request.Cookies["yzmcode"]. Valoare, a.Text, adevărat) != 0)
{ Response.Write("<scrip去掉t>alert('CAPTCHA eroare!')"</scrip去掉t>);
} altfel { Response.Write("<scrip去掉t>alert('Validate!!')</scrip去掉t>"; }
}
|