


Die allgemeine Methode zum Generieren von Bestätigungscodes ist dieselbe. Es gibt zwei Hauptschritte.
Der erste Schritt: Generieren Sie zufällig die Zahlen oder Buchstaben des Systembestätigungscodes und fügen Sie die zufällig generierten Zahlen oder Buchstaben hinzu zu Cookies oder Sitzung.
Schritt 2: Verwenden Sie die im ersten Schritt zufällig generierten Zahlen oder Buchstaben, um das Bild zu synthetisieren.
Es ist ersichtlich, dass die Komplexität des Bestätigungscodes hauptsächlich im zweiten Schritt abgeschlossen wird. Sie können ihn entsprechend der gewünschten Komplexität festlegen.
Lassen Sie uns einen Blick darauf werfen:
Schritt eins: So generieren Sie zufällig Zahlen oder Buchstaben
/// <summary> /// 生成验证码的随机数 /// </summary> /// <returns>返回五位随机数</returns> private string GenerateCheckCode() { int number; char code; string checkCode = String.Empty; Random random = new Random(); for (int i = 0; i < 5; 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("CheckCode", checkCode));//写入COOKIS Session["CheckCode"] = checkCode; //写入Session,可以任意选一下 return checkCode; }
Schritt zwei: Bilder generieren
/// <summary> /// 生成验证码图片 /// </summary> /// <param name="checkCode"></param> private void CreateCheckCodeImage(string checkCode) { if (checkCode == null || checkCode.Trim() == String.Empty) return; Bitmap image = new 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)); LinearGradientBrush brush = new 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); MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); } finally {//释放对象资源 g.Dispose(); image.Dispose(); }
*Komplettes Programm
Fügen Sie zunächst eine checkCode.aspx-Datei zum Projekt in VS2005 hinzu und fügen Sie den folgenden vollständigen Code zur oben generierten checkCode.aspx.cs-Codedatei hinzu
using System; using System.Data; using System.Configuration; using System.Collections; 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.Drawing; using System.IO; using System.Drawing.Drawing2D; public partial class checkCode : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { CreateCheckCodeImage(GenerateCheckCode());//调用下面两个方法; } /// <summary> /// 生成验证码的随机数 /// </summary> /// <returns>返回五位随机数</returns> private string GenerateCheckCode() { int number; char code; string checkCode = String.Empty; Random random = new Random(); for (int i = 0; i < 5; 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("CheckCode", checkCode));//写入COOKIS Session["CheckCode"] = checkCode; //写入Session,可以任意选一下 return checkCode; } /// <summary> /// 生成验证码图片 /// </summary> /// <param name="checkCode"></param> private void CreateCheckCodeImage(string checkCode) { if (checkCode == null || checkCode.Trim() == String.Empty) return; Bitmap image = new 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)); LinearGradientBrush brush = new 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); MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); } finally {//释放对象资源 g.Dispose(); image.Dispose(); } } }
Die Überprüfung Die Codeseite ist fertig, nennen wir sie:
Fügen Sie das Bildsteuerelement dort hinzu, wo Sie den Bestätigungscode verwenden müssen
Auf diese Weise wird der Bestätigungscode im Bildsteuerelement angezeigt!
Die Anzeige ist fertig, natürlich müssen wir beurteilen, ob die Eingabe des Benutzers korrekt ist!
Solange wir den vom Benutzer eingegebenen Wert erhalten und ihn mit Cookies oder Session vergleichen, ist es in Ordnung
Erhalten Sie den Wert von Cookies Request.Cookies["CheckCode"].Value
Erhalten Sie den Wert des Sitzungswerts Session["CheckCode"].ToString() (Bestimmen Sie am besten zunächst, ob die Sitzung leer ist)
Wenn Sie nicht auf Groß- und Kleinschreibung achten möchten , wandeln Sie den vom Benutzer eingegebenen Wert und den Wert von Cookies oder Sitzung in Großbuchstaben oder Kleinbuchstaben um
Mit Verwendung
protected void Button1_Click(object sender, EventArgs e) { if (Request.Cookies["CheckCode"].Value == TextBox1.Text.Trim().ToString()) { Response.Write("Cookies is right"); } else { Response.Write("Cookies is wrong"); } if (Session["CheckCode"] != null) { if (Session["CheckCode"].ToString().ToUpper() == TextBox1.Text.Trim().ToString().ToUpper()) //这样写可以不能区分大小写 { Response.Write("Session is right"); } else { Response.Write("Session is wrong"); } } }
Das Obige ist der gesamte Inhalt dieses Artikels und zeigt Ihnen, wie Um einen ASP.NET-Bestätigungscode zu erstellen, hoffe ich, dass er Ihnen gefällt.
Ausführlichere Artikel zum Generieren von ASP.NET-Bestätigungscodes finden Sie auf der chinesischen PHP-Website!

C#.NET wird in der modernen Welt in den Bereichen Spieleentwicklung, Finanzdienstleistungen, Internet der Dinge und Cloud Computing häufig eingesetzt. 1) Verwenden Sie in der Spielentwicklung C#, um über die Unity Engine zu programmieren. 2) Im Bereich Finanzdienstleistungen wird C#.NET verwendet, um Hochleistungshandelssysteme und Datenanalyse-Tools zu entwickeln. 3) In Bezug auf IoT und Cloud Computing unterstützt C#.NET Unterstützung durch Azure -Dienste zur Entwicklung der Gerätesteuerungslogik und der Datenverarbeitung.

.NETFRAMEWORKISWINDOWS-zentriert, while.Netcore/5/6SupportScross-Plattformdevelopment.1) .NETFRAMEWORK, SEber2002, ISIdeAlforwindowsApplicationsButlimitedIncross-PlatformCaps.2) .NETCORE, VORTEMANCE, MITTEILAGE und SITSEVOLUTUTIONS (.NETSVOLUTTATURE (.NETSVOLDS (.NETSVOLUTTIONS (.NETSVOLUTTION) (.NETSVOLUTTIONS (.NOLUTTUMS (.

Die C#.NET Developer Community bietet umfangreiche Ressourcen und Unterstützung, einschließlich: 1. Microsoft offizielle Dokumente, 2. Community -Foren wie Stackoverflow und Reddit sowie 3. Open -Source -Projekte auf GitHub. Diese Ressourcen helfen Entwicklern, ihre Programmierkenntnisse vom grundlegenden Lernen bis hin zu erweiterten Anwendungen zu verbessern.

Die Vorteile von C#.NET umfassen: 1) Sprachmerkmale wie asynchrone Programmierungen vereinfachen die Entwicklung; 2) Leistung und Zuverlässigkeit, Verbesserung der Effizienz durch JIT -Kompilierung und Mülleimermechanismen; 3) cross-plattform-Unterstützung, .Netcore erweitert die Anwendungsszenarien; 4) Eine breite Palette praktischer Anwendungen mit hervorragender Leistung vom Web bis zum Desktop und der Spieleentwicklung.

C# ist nicht immer an .NET gebunden. 1) C# kann in der Mono -Laufzeitumgebung ausgeführt werden und eignet sich für Linux und MacOS. 2) In der Unity Game Engine wird C# für das Skript verwendet und stützt sich nicht auf das .NET -Framework. 3) C# kann auch für die Entwicklung eingebetteter Systementwicklung verwendet werden, wie z. B. .NetMicroframework.

C# spielt eine zentrale Rolle im .NET -Ökosystem und ist die bevorzugte Sprache für Entwickler. 1) C# bietet effiziente und benutzerfreundliche Programmiermethoden und kombiniert die Vorteile von C, C und Java. 2) Führen Sie durch .NET Runtime (CLR) durch, um einen effizienten plattformübergreifenden Betrieb zu gewährleisten. 3) C# unterstützt grundlegende bis fortgeschrittene Nutzung wie Linq und asynchrone Programmierung. 4) Optimierung und Best Practices umfassen die Verwendung von StringBuilder und asynchrones Programmieren zur Verbesserung der Leistung und Wartbarkeit.

C# ist eine Programmiersprache, die von Microsoft im Jahr 2000 veröffentlicht wurde, um die Kraft von C und die Einfachheit von Java zu kombinieren. 1.C# ist eine typsichere, objektorientierte Programmiersprache, die Kapselung, Vererbung und Polymorphismus unterstützt. 2. Der Kompilierungsprozess von C# wandelt den Code in eine intermediäre Sprache (IL) um und kompiliert ihn dann in die Ausführung von Maschinencode in der .NET -Laufzeitumgebung (CLR). 3. Die grundlegende Verwendung von C# umfasst variable Erklärungen, Kontrollflüsse und Funktionsdefinitionen, während erweiterte Verwendungen asynchrone Programmierungen, Linq und Delegierte abdecken usw.. Die gemeinsamen Fehler umfassen Typenfehler und Null -Referenzausnahmen, die durch Debugger, Ausnahmehandling und Protokollung debuggen werden können. 5. Vorschläge zur Leistungsoptimierung umfassen die Verwendung von LINQ, asynchrone Programmierung und Verbesserung der Code -Lesbarkeit.

C# ist eine Programmiersprache, während .NET ein Software -Framework ist. 1.C# wird von Microsoft entwickelt und ist für die Entwicklung von mehreren Plattformarbeiten geeignet. 2..NET bietet Klassenbibliotheken und Laufzeitumgebungen und unterstützt mehrsprachige. Die beiden arbeiten zusammen, um moderne Anwendungen aufzubauen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool
