asp.net verification code image generation example
The verification code is a picture. We need to write an in the front-end code, and src points to a page (ValidateImage.aspx).
<script language="javascript"> function changeImg() { $("#imgCheckNo").attr("src", "ValidateImage.aspx?r=" + getRandom(999)); } function getRandom(n) { return Math.floor(Math.random() * n + 1) } </script> <div> <img id="imgCheckNo" src="ValidateImage.aspx" style="border-color: #000000; border-width: 1px;border-style: Solid"> <span onclick="changeImg();">看不清?换一张</span> </div> <div> <div class="labelCss">验证码:</div> <div> <asp:TextBox ID="tbxCheckNo" runat="server" CssClass="tbxCss"></asp:TextBox> </div> <div> <asp:Button ID="btnSubmit" runat="server" Text="立即注册" OnClick="btnSubmit_Click" /> </div>
ValidateImage.aspx is used to generate verification code images and save the verification code value in cookies.
The code is as follows:
public partial class ValidateImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.CreateCheckCodeImage(RndNum()); } /// <summary>生成验证码 /// </summary> /// <returns></returns> private string RndNum() { int number; char code; string checkCode = String.Empty; System.Random random = new Random(); for (int i = 0; i < 4; i++) { number = random.Next(); if (number % 2 == 0) code = (char)('0' + (char)(number % 10)); else code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } Response.Cookies.Add(new HttpCookie("yzmcode", checkCode)); return checkCode; } /// <summary>向页面生成验证码Gif图片 /// </summary> /// <param name="checkCode"></param> private void CreateCheckCodeImage(string checkCode) { if (checkCode == null || checkCode.Trim() == String.Empty) return; System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的背景噪音线 for (int i = 0; i < 25; 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.Silver), x1, y1, x2, y2); } Font font = new 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, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(checkCode, font, brush, 2, 2); //画图片的前景噪音点 for (int i = 0; i < 100; 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); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } } }
The last is the background event to determine whether the current verification code is correct.
The code is as follows:
#region 页面控件事件 protected void btnSubmit_Click(object sender, EventArgs e) { if (String.Compare(Request.Cookies["yzmcode"].Value, tbxCheckNo.Text, true) != 0) { Response.Write("<script>alert('验证码错误!')</script>"); } else { // Response.Write("<script>alert('验证吗正确!!!')</script>"); } } #endregion
For more asp.net verification code image generation examples and related articles, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The core concepts of .NET asynchronous programming, LINQ and EFCore are: 1. Asynchronous programming improves application responsiveness through async and await; 2. LINQ simplifies data query through unified syntax; 3. EFCore simplifies database operations through ORM.

C#.NET provides powerful tools for concurrent, parallel and multithreaded programming. 1) Use the Thread class to create and manage threads, 2) The Task class provides more advanced abstraction, using thread pools to improve resource utilization, 3) implement parallel computing through Parallel.ForEach, 4) async/await and Task.WhenAll are used to obtain and process data in parallel, 5) avoid deadlocks, race conditions and thread leakage, 6) use thread pools and asynchronous programming to optimize performance.

In C language, char type conversion can be directly converted to another type by: casting: using casting characters. Automatic type conversion: When one type of data can accommodate another type of value, the compiler automatically converts it.

In C, the char type is used in strings: 1. Store a single character; 2. Use an array to represent a string and end with a null terminator; 3. Operate through a string operation function; 4. Read or output a string from the keyboard.

The char array stores character sequences in C language and is declared as char array_name[size]. The access element is passed through the subscript operator, and the element ends with the null terminator '\0', which represents the end point of the string. The C language provides a variety of string manipulation functions, such as strlen(), strcpy(), strcat() and strcmp().

There is no built-in sum function in C language, so it needs to be written by yourself. Sum can be achieved by traversing the array and accumulating elements: Loop version: Sum is calculated using for loop and array length. Pointer version: Use pointers to point to array elements, and efficient summing is achieved through self-increment pointers. Dynamically allocate array version: Dynamically allocate arrays and manage memory yourself, ensuring that allocated memory is freed to prevent memory leaks.

In C language, special characters are processed through escape sequences, such as: \n represents line breaks. \t means tab character. Use escape sequences or character constants to represent special characters, such as char c = '\n'. Note that the backslash needs to be escaped twice. Different platforms and compilers may have different escape sequences, please consult the documentation.

Methods to improve the performance of C#.NET applications include: 1. Optimize garbage collection (GC) by reducing object allocation and using array substitution lists; 2. Reasonable use of asynchronous programming to avoid blocking the main thread; 3. Optimize LINQ queries by avoiding method chains and using delayed execution; 4. Use parallel processing such as Parallel.For to improve the performance of complex scenarios; 5. Avoid common errors such as memory leaks and deadlocks, and use debugging tools to fix them.
