utilisant System ; utilisant System.Data ; utilisant System.Configuration ; en utilisant System.Collections ; en utilisant System.Web ; en utilisant System.Web.Security ; en utilisant System.Web.UI ; utilisant System.Web.UI.WebControls ; utilisant System.Web.UI.WebControls.WebParts ; en utilisant System.Web.UI.HtmlControls ; utiliser System.Drawing.Design ; utilisant System.Drawing ; code image de classe partielle publique : System.Web.UI.Page
{ vide protégé Page_Load(objet émetteur d’objet, EventArgs e)
{ Exactement. CreateCheckCodeImage(RndNum()) ;
}
chaîne privée RndNum()
{ numéro d’entrée ; code char ; chaîne checkCode = Chaîne.Vide ;
System.Aléatoire aléatoire = nouveau Aléatoire() ;
pour (int i = 0 ; J’ai < 4 ; i++)
{ nombre = aléatoire. Next() ; if (nombre % 2 == 0) code = (char) (char) (0' + (char) (nombre % 10)) ; sinon code = (char) ('A' + (char) (nombre % 26)) ; checkCode += code. ToString() ;
} Response.Cookies.Add(nouveau HttpCookie(« yzmcode », checkCode)) ; code de vérification de retour ;
} void privé CreateCheckCodeImage(chaîne checkCode)
{ if (checkCode == null || checkCode.Trim() == String.Empty) retour ; Image System.Drawing.Bitmap = nouveau System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22) ; Graphiques g = Graphiques.FromImage(image) ; essaie
{
//生成随机生成器 Aléatoire aléatoire = nouveau Aléatoire() ;
//清空图片背景色 g. Transparent (Couleur.Blanc) ;
//画图片的背景噪音线 pour (int i = 0 ; J’ai < 25 ans ; i++)
{ int x1 = aléatoire. Suivant (image. Largeur) ; int x2 = aléatoire. Suivant (image. Largeur) ; int y1 = aléatoire. Suivant (image. Taille) ; int y2 = aléatoire. Suivant (image. Taille) ; g.DrawLine(nouveau stylo (Couleur.Argent), x1, y1, x2, y2) ;
}
Font = new System.Drawing.Font(« Arial », 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)) ; System.Drawing.Drawing2D.LinearGradientBrush pinceau = nouveau System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image. Largeur, image. Hauteur), Color.Blue, Color.Dark Red, 1,2f, vrai) ; g.DrawString(checkCode, police, pinceau, 2, 2) ;
//画图片的前景噪音点 pour (int i = 0 ; J’ai < 100 ; i++)
{ int x = aléatoire. Suivant (image. Largeur) ; int y = aléatoire. Suivant (image. Taille) ; image. SetPixel(x, y, Color.FromArgb(random. Next()) ;
}
//画图片的边框线 g.DrawRectangle (nouveau stylo (Color.Silver), 0, 0, image. Largeur - 1, image. Taille - 1) ; System.IO.MemoryStream ms = nouveau System.IO.MemoryStream() ; image. Save(ms, System.Drawing.Imaging.ImageFormat.Gif) ; Response.ClearContent() ; Response.ContentType = « image/Gif » ; Response.BinaryWrite(ms. ToArray()) ;
} finalement
{ g.Dispose() ; image. Dispose() ;
}
}
}
//验证码使用页login.aspx中的代码 <asp :ImageButton ID="yzm » runat="server » ImageUrl="imagecode.aspx » /> <asp :LinkButton ID="ChangeCode » runat="server » text="Impossible de voir clairement ? Change the verification code » /> <asp :Button ID="Button1 » runat="server » Text="Button » /></div>
//ogin.aspx.cs中的代码 Ajouter Vous n’avez pas besoin d’écrire de code, cliquez sur « Ne pas voir clairement ? » Changer le code de vérification » pour actualiser le code de vérification plus tard vide protégé ChangeCode_Click(objet émetteur d’objet, EventArgs e)
{
}
//提交按钮代码这里是通过cookies来验证的 Vide protégé Button1_Click(objet émetteur, EventArgs e)
{ if (String.Compare(Request.Cookies["yzmcode"]. Value, a.Text, true) != 0)
{ Response.Write (« <scrip去掉t>alert('CAPTCHA error !')) »</scrip去掉t>) ;
} sinon { Response.Write("<scrip去掉t>alert('Validate !!')</scrip去掉t> ; }
}
|