


génération, actualisation et vérification du code de vérification asp.net
La technologie du code de vérification est mise en place pour empêcher le craquage par force brute, etc. De nos jours, les enregistrements généraux de sites Web et d’autres sites Web offrent des fonctions de code de vérification, en particulier la longue liste de Tencent. L'article fait référence au code d'autres personnes. Une fois que vous l’avez, vous n’avez plus besoin d’écrire. Vous pouvez le lire. Cependant, j'ai trouvé deux problèmes de PageLoad lors des tests. Juste deux commentaires. Les espaces de noms ont également été modifiés. En même temps, des instructions de vérification complètes sont fournies :
1 Créez un nouveau code de fichier VerifyCode.aspx
cs comme suit :
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Text; /**///// <summary> /// 页面验证码程序 /// 使用:在页面中加入HTML代码 <img src="VerifyCode.aspx"> /// </summary> public partial class VerifyCode : System.Web.UI.Page ...{ static string[] FontItems = new string[] ...{ "Arial", "Helvetica", "Geneva", "sans-serif", "Verdana" }; static Brush[] BrushItems = new Brush[] ...{ Brushes.OliveDrab, Brushes.ForestGreen, Brushes.DarkCyan, Brushes.LightSlateGray, Brushes.RoyalBlue, Brushes.SlateBlue, Brushes.DarkViolet, Brushes.MediumVioletRed, Brushes.IndianRed, Brushes.Firebrick, Brushes.Chocolate, Brushes.Peru, Brushes.Goldenrod }; static string[] BrushName = new string[] ...{ "OliveDrab", "ForestGreen", "DarkCyan", "LightSlateGray", "RoyalBlue", "SlateBlue", "DarkViolet", "MediumVioletRed", "IndianRed", "Firebrick", "Chocolate", "Peru", "Goldenrod" }; private static Color BackColor = Color.White; private static Pen BorderColor = Pens.DarkGray; private static int Width = 52; private static int Height = 21; private Random _random; private string _code; private int _brushNameIndex; override protected void OnInit(EventArgs e) ...{ // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // //InitializeComponent(); //base.OnInit(e); } /**//**//**//// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() ...{ //this.Load += new System.EventHandler(this.Page_Load); } /**//// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Page_Load(object sender, System.EventArgs e) ...{ if (!IsPostBack) ...{ // // TODO : initialize // this._random = new Random(); this._code = GetRandomCode(); // // TODO : use Session["code"] save the VerifyCode // Session["code"] = this._code; // // TODO : output Image // this.SetPageNoCache(); this.OnPaint(); } } /**//**//**//// <summary> /// 设置页面不被缓存 /// </summary> private void SetPageNoCache() ...{ Response.Buffer = true; Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1); Response.Expires = 0; Response.CacheControl = "no-cache"; Response.AppendHeader("Pragma","No-Cache"); } /**//**//**//// <summary> /// 取得一个 4 位的随机码 /// </summary> /// <returns></returns> private string GetRandomCode() ...{ return Guid.NewGuid().ToString().Substring(0, 4); } /**//**//**//// <summary> /// 随机取一个字体 /// </summary> /// <returns></returns> private Font GetFont() ...{ int fontIndex = _random.Next(0, FontItems.Length); FontStyle fontStyle = GetFontStyle(_random.Next(0, 2)); return new Font(FontItems[fontIndex], 12, fontStyle); } /**//**//**//// <summary> /// 取一个字体的样式 /// </summary> /// <param name="index"></param> /// <returns></returns> private FontStyle GetFontStyle(int index) ...{ switch (index) ...{ case 0: return FontStyle.Bold; case 1: return FontStyle.Italic; default: return FontStyle.Regular; } } /**//**//**//// <summary> /// 随机取一个笔刷 /// </summary> /// <returns></returns> private Brush GetBrush() ...{ int brushIndex = _random.Next(0, BrushItems.Length); _brushNameIndex = brushIndex; return BrushItems[brushIndex]; } /**//**//**//// <summary> /// 绘画事件 /// </summary> private void OnPaint() ...{ Bitmap objBitmap = null; Graphics g = null; try ...{ objBitmap = new Bitmap(Width, Height); g = Graphics.FromImage(objBitmap); Paint_Background(g); Paint_Text(g); Paint_TextStain(objBitmap); Paint_Border(g); objBitmap.Save(Response.OutputStream, ImageFormat.Gif); Response.ContentType = "image/gif"; } catch ...{} finally ...{ if (null != objBitmap) objBitmap.Dispose(); if (null != g) g.Dispose(); } } /**//**//**//// <summary> /// 绘画背景颜色 /// </summary> /// <param name="g"></param> private void Paint_Background(Graphics g) ...{ g.Clear(BackColor); } /**//**//**//// <summary> /// 绘画边框 /// </summary> /// <param name="g"></param> private void Paint_Border(Graphics g) ...{ g.DrawRectangle(BorderColor, 0, 0, Width - 1, Height - 1); } /**//**//**//// <summary> /// 绘画文字 /// </summary> /// <param name="g"></param> private void Paint_Text(Graphics g) ...{ g.DrawString(_code, GetFont(), GetBrush(), 3, 1); } /**//**//**//// <summary> /// 绘画文字噪音点 /// </summary> /// <param name="g"></param> private void Paint_TextStain(Bitmap b) ...{ for (int n=0; n<30; n++) ...{ int x = _random.Next(Width); int y = _random.Next(Height); b.SetPixel(x, y, Color.FromName(BrushName[_brushNameIndex])); } } }
2 Référence de page :
Généralement, la fonction de rafraîchissement doit être fournie en même temps (changez-en une si vous ne voyez pas clairement), le le code est le suivant
Si une page maître est utilisée, utilisez le code suivant : asp:Image ID="getcode" src="VerifyCode.aspx" runat="server " />--%>
Actualiser le code de vérification A>
Le javascript correspondant au lien hypertexte est le suivant :
code de vérification dans la session et est marqué d'un code. Lire le code Session["code"].ToString();
En cours d'utilisation, il suffit de comparer si le Session["code"].ToString() et la chaîne saisie dans la zone de texte (TextBoxCode.Text) sont les mêmes juge.
if(Session["code"].ToString().Trim().Equals(TextBoxCode.Text.Trim()))
...{
Response.Write("Success");
}
Test réussi !
Pour plus d'articles liés à la génération, à l'actualisation et à la vérification du code de vérification asp.net, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











C # est un langage de programmation moderne et orienté objet développé par Microsoft et dans le cadre du .NET Framework. 1.C # prend en charge la programmation orientée objet (POO), y compris l'encapsulation, l'héritage et le polymorphisme. 2. La programmation asynchrone en C # est implémentée via Async et attend des mots clés pour améliorer la réactivité des applications. 3. Utilisez LINQ pour traiter les collections de données concisement. 4. Les erreurs courantes incluent les exceptions de référence NULL et les exceptions indexes hors gamme. Les compétences de débogage comprennent l'utilisation d'un débogueur et une gestion des exceptions. 5. L'optimisation des performances comprend l'utilisation de StringBuilder et d'éviter l'emballage et le déballage inutiles.

Les stratégies de test pour les applications C # .NET comprennent les tests unitaires, les tests d'intégration et les tests de bout en bout. 1. Le test unitaire garantit que l'unité minimale du code fonctionne indépendamment, en utilisant le cadre MSTEST, NUnit ou Xunit. 2. Les tests intégrés vérifient les fonctions de plusieurs unités combinées et des données simulées couramment utilisées et des services externes. 3. Les tests de bout en bout simulent le processus de fonctionnement complet de l'utilisateur et le sélénium est généralement utilisé pour les tests automatisés.

C # .NET est toujours important car il fournit des outils et des bibliothèques puissants qui prennent en charge le développement d'applications multiples. 1) C # combine .NET Framework pour rendre le développement efficace et pratique. 2) Le mécanisme de collecte de la sécurité et des ordures de C # améliore ses avantages. 3) .NET fournit un environnement de course multiplateforme et des API riches, améliorant la flexibilité du développement.

C # .NETtisversatileforbothwebandDeskTopDevelopment.1) forweb, useasp.netfordynamicapplications.2) fordesktop, employwindowsformSorwpfforrichInterfaces.3) usexamarinforcross-plateformDevelopment, permanant les codéescosswindows, macos, linux, etmobiledevices.

C # est largement utilisé dans les applications au niveau de l'entreprise, le développement de jeux, les applications mobiles et le développement Web. 1) Dans les applications au niveau de l'entreprise, C # est souvent utilisé pour ASP.Netcore pour développer une webapi. 2) Dans le développement du jeu, C # est combiné avec le moteur Unity pour réaliser le contrôle des rôles et d'autres fonctions. 3) C # prend en charge le polymorphisme et la programmation asynchrone pour améliorer la flexibilité du code et les performances de l'application.

C # .NeTissuitableFormenterprise-LevelApplications withithemicrosofosystématetoitsstrongThpyping, RichLibrary, androbustperformance.wowever, itmayNotBeidealForcross-PlatformDevelopmentorwhenRawpeediscritical, whileLanguageSlikerUstorGomightBeferable.

Le processus de programmation de C # dans .NET comprend les étapes suivantes: 1) l'écriture de code C #, 2) la compilation dans un langage intermédiaire (IL) et 3) l'exécution par .NET Runtime (CLR). Les avantages de C # dans .NET sont sa syntaxe moderne, son système de type puissant et son intégration serrée avec le Framework .NET, adapté à divers scénarios de développement des applications de bureau aux services Web.

C # et .NET s'adaptent aux besoins des technologies émergentes à travers des mises à jour et des optimisations continues. 1) C # 9.0 et .NET5 introduire le type d'enregistrement et l'optimisation des performances. 2) .netcore améliore le support natif et conteneurisé cloud. 3) ASP.Netcore s'intègre aux technologies Web modernes. 4) ML.NET prend en charge l'apprentissage automatique et l'intelligence artificielle. 5) La programmation asynchrone et les meilleures pratiques améliorent les performances.
