Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 18594|Répondre: 1

[ASP.NET] asp.net le principe et le code de la génération du captcha d’image

[Copié le lien]
Publié sur 02/04/2015 10:26:51 | | |
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> ; }
}




Précédent:IE coupe l’exécution de commandes à distance
Prochain:asp.net implémenter des cookies pour sauvegarder des valeurs
Publié sur 04/04/2015 10:58:42 |
Je peux déjà m’en servir
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com