using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; //添加引用 using System.Drawing; //添加引用 /// <summary> /// CheckCode_Ch 的摘要说明 /// </summary> public class CheckCode_Ch { public CheckCode_Ch() { // // TODO: 在此处添加构造函数逻辑 // } private static object[] CreateString() { //定义一个数组存储汉字编码的组成元素 string[] str = new string[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" }; Random ran = new Random(); //定义一个随机数对象 object[] bytes = new object[4]; for (int i = 0; i < 4; i++) { //获取区位码第一位 int ran1 = ran.Next(11, 14); string str1 = str[ran1].Trim(); //获取区位码第二位并防止数据重复 ran = new Random(ran1 * unchecked((int)DateTime.Now.Ticks) + i); int ran2; if (ran1 == 13) { ran2 = ran.Next(0, 7); } else { ran2 = ran.Next(0, 16); } string str2 = str[ran2].Trim(); //获取区位码第三位 ran = new Random(ran2 * unchecked((int)DateTime.Now.Ticks) + i); int ran3 = ran.Next(10, 16); string str3 = str[ran3].Trim(); //获取区位码第四位 ran = new Random(ran3 * unchecked((int)DateTime.Now.Ticks) + i); int ran4; if (ran3 == 10) { ran4 = ran.Next(1, 16); } else if (ran3 == 15) { ran4 = ran.Next(0, 15); } else { ran4 = ran.Next(0, 16); } string str4 = str[ran4].Trim(); //定义字节变量存储产生的随机汉字区位码 byte byte1 = Convert.ToByte(str1 + str2, 16); byte byte2 = Convert.ToByte(str3 + str4, 16); byte[] stradd = new byte[] { byte1, byte2 }; //将产生的汉字字节放入数组 bytes.SetValue(stradd, i); } return bytes; } private static string GetString() { Encoding gb = Encoding.GetEncoding("gb2312"); object[] bytes = CreateString(); //根据汉字字节解码出中文汉字 string str1 = gb.GetString((byte[])Convert.ChangeType(bytes[0], typeof(byte[]))); string str2 = gb.GetString((byte[])Convert.ChangeType(bytes[1], typeof(byte[]))); string str3 = gb.GetString((byte[])Convert.ChangeType(bytes[2], typeof(byte[]))); string str4 = gb.GetString((byte[])Convert.ChangeType(bytes[3], typeof(byte[]))); string str = str1 + str2 + str3 + str4; HttpContext.Current.Response.Cookies.Add(new HttpCookie("CheckCode", str)); return str; } public static void GraphicsImage() { System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((GetString().Length * 22.5)), 22); Graphics g = Graphics.FromImage(image); //创建画布 try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的背景噪音线 for (int i = 0; i < 1; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); } Font font = new System.Drawing.Font("Couriew New", 12, System.Drawing.FontStyle.Bold); System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush (new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(GetString(), font, brush, 2, 2); //画图片的前景噪音点 for (int i = 0; i < 50; i++) { int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(random.Next())); } //画图片的边框线 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ContentType = "image/Gif"; HttpContext.Current.Response.BinaryWrite(ms.ToArray()); } catch (Exception ms) { HttpContext.Current.Response.Write(ms.Message); } } }
La deuxième étape consiste à créer une page qui référence la bibliothèque de classes ChineseCheckCode.aspx. Il n'est pas nécessaire d'écrire du code dans le frontend et la bibliothèque de classes est référencée en arrière-plan. .
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; public partial class UserValidator_ChineseCheckCode : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { CheckCode_Ch.GraphicsImage(); //调用方法生成四位汉字验证码 } }
La troisième étape fait référence à la page de codes de vérification
<asp:TextBox ID="Validator" runat="server" Width="150px" ></asp:TextBox> <img src="/static/imghwm/default1.png" data-src="ChineseCheckCode.aspx" class="lazy" id="Img1" alt="看不清,请点击我!" onclick="this.src=this.src+'?'" style="width: 75px; height: 24px" align="left" /> <asp:ImageButton ID="imgBtnLogin" runat="server" ImageUrl="~/Images/Login.GIF" OnClick="imgBtnLogin_Click" />
Jugement backend
protected void imgBtnLogin_Click(object sender, ImageClickEventArgs e) { HttpCookie cookie = Request.Cookies["CheckCode"]; if (cookie.Value == this.Validator.Text.Trim()) { //。。。 } else { Response.Write("<script>alert('验证码输入错误,请重新输入!');Location='ChineseCodeValidator.aspx'</script>"); return; } }
Le code de vérification ci-dessus est généré avec quatre chiffres, veuillez faire modifications appropriées selon la situation.
Nous résumons maintenant la technologie des codes de vérification pour générer des nombres purs, des nombres et des lettres mixtes et des caractères chinois purs. J'espère que cela vous aidera. .
Pour plus d'articles sur le code de vérification généré par asp.net (chinois pur), veuillez faire attention au site Web PHP chinois !

L'écosystème C # .NET fournit des frameworks et bibliothèques riches pour aider les développeurs à créer efficacement les applications. 1.asp.netcore est utilisé pour créer des applications Web haute performance, 2.EntityFrameWorkcore est utilisé pour les opérations de base de données. En comprenant l'utilisation et les meilleures pratiques de ces outils, les développeurs peuvent améliorer la qualité et les performances de leurs applications.

Comment déployer une application C # .net sur Azure ou AWS? La réponse est d'utiliser AzureAppService et AwselasticBeanStalk. 1. Sur Azure, automatiser le déploiement à l'aide d'AzureAppService et AzurePipelines. 2. Sur AWS, utilisez Amazon ElasticBeanStalk et Awslambda pour implémenter le déploiement et le calcul sans serveur.

La combinaison de C # et .NET fournit aux développeurs un environnement de programmation puissant. 1) C # prend en charge le polymorphisme et la programmation asynchrone, 2) .NET fournit des capacités multiplateforme et des mécanismes de traitement simultanés, ce qui les rend largement utilisés dans le développement d'applications de bureau, Web et mobile.

.NetFramework est un cadre logiciel et C # est un langage de programmation. 1..NetFramework fournit des bibliothèques et des services, prenant en charge le développement d'applications de bureau, Web et mobile. 2.C # est conçu pour .NetFramework et prend en charge les fonctions de programmation modernes. 3..NetFramework gère l'exécution du code via CLR, et le code C # est compilé en IL et exécuté par CLR. 4. Utilisez .NetFramework pour développer rapidement des applications, et C # fournit des fonctions avancées telles que LINQ. 5. Les erreurs courantes incluent la conversion de type et les blocages de programmation asynchrones. Des outils VisualStudio sont nécessaires pour le débogage.

C # est un langage de programmation moderne et orienté objet développé par Microsoft, et .NET est un cadre de développement fourni par Microsoft. C # combine les performances de C et la simplicité de Java et convient à la création de diverses applications. Le .NET Framework prend en charge plusieurs langues, fournit des mécanismes de collecte des ordures et simplifie la gestion de la mémoire.

C # et .NET Runtime travaillent en étroite collaboration pour permettre aux développeurs de pouvoir de développer des capacités de développement efficaces, puissantes et multiplateformes. 1) C # est un langage de programmation de type et orienté objet conçu pour intégrer de manière transparente avec le framework .NET. 2) Le .NET Runtime gère l'exécution du code C #, fournit une collecte de déchets, des services de sécurité et d'autres services et assure une opération efficace et multiplateforme.

Pour démarrer le développement C # .NET, vous devez: 1. Comprendre la connaissance de base de C # et les concepts principaux du .NET Framework; 2. Maître les concepts de base des variables, des types de données, des structures de contrôle, des fonctions et des classes; 3. Apprenez les fonctionnalités avancées de C #, telles que LINQ et la programmation asynchrone; 4. Soyez familier avec les techniques de débogage et les méthodes d'optimisation des performances pour les erreurs courantes. Avec ces étapes, vous pouvez progressivement pénétrer le monde de C # .NET et écrire des applications efficaces.

La relation entre C # et .NET est inséparable, mais ce ne sont pas la même chose. C # est un langage de programmation, tandis que .NET est une plate-forme de développement. C # est utilisé pour écrire du code, compiler dans le langage intermédiaire de .NET (IL) et exécuté par .NET Runtime (CLR).


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

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

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