suchen
HeimBackend-EntwicklungC#.Net-TutorialGenerierung, Aktualisierung und Überprüfung des asp.net-Bestätigungscodes

Die Verifizierungscode-Technologie ist so eingerichtet, dass Brute-Force-Cracking usw. verhindert wird. Heutzutage bieten allgemeine Website-Registrierungen und andere Websites Bestätigungscode-Funktionen, insbesondere die lange Liste von Tencent. Der Artikel bezieht sich auf den Code anderer Leute. Sobald Sie es haben, müssen Sie nicht mehr schreiben. Sie können es lesen. Allerdings habe ich beim Testen zwei PageLoad-Probleme festgestellt. Nur zwei Kommentare. Namensräume wurden ebenfalls geändert. Gleichzeitig werden vollständige Verifizierungsanweisungen bereitgestellt:
1 Erstellen Sie einen neuen VerifyCode.aspx
cs-Dateicode wie folgt:

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="/static/imghwm/default1.png"  data-src="VerifyCode.aspx"  class="lazy"   alt="Generierung, Aktualisierung und Überprüfung des asp.net-Bestätigungscodes" > 
/// </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 Seitenverweis:
Im Allgemeinen muss die Aktualisierungsfunktion gleichzeitig bereitgestellt werden (ändern Sie eine, wenn Sie nicht klar sehen können). Der Code lautet wie folgt:
Bestätigungscode aktualisieren
Wenn eine Masterseite verwendet wird, verwenden Sie den folgenden Code:
asp:Image ID="getcode" src="VerifyCode.aspx" runat="server " />--%>>
Bestätigungscode aktualisieren A>
Das dem Hyperlink entsprechende Javascript lautet wie folgt:
Verifizierungscode in der Sitzung und ist mit Code gekennzeichnet. Lesen Sie den Code Session["code"].ToString();
Beim Gebrauch müssen wir nur vergleichen, ob Session["code"].ToString() und die im Textfeld eingegebene Zeichenfolge (TextBoxCode.Text) sind die gleichen.
if(Session["code"].ToString().Trim().Equals(TextBoxCode.Text.Trim()))
...{
Response.Write("Success");
}
Test bestanden!

Weitere Artikel zur Generierung, Aktualisierung und Überprüfung von asp.net-Bestätigungscodes finden Sie auf der chinesischen PHP-Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Mastering C# .NET -Designmuster: Von Singleton zur AbhängigkeitsinjektionMastering C# .NET -Designmuster: Von Singleton zur AbhängigkeitsinjektionMay 09, 2025 am 12:15 AM

Entwurfsmuster in C#.NET umfassen Singleton -Muster und Abhängigkeitsinjektion. 1.Singleton -Modus stellt sicher, dass nur eine Instanz der Klasse vorhanden ist, die für Szenarien geeignet ist, in denen globale Zugriffspunkte erforderlich sind. Es sollte jedoch Aufmerksamkeit auf die Sicherheit von Threads und Missbrauch geschenkt werden. 2. Die Abhängigkeitsinjektion verbessert die Code -Flexibilität und -Testabilität durch Injektion von Abhängigkeiten. Es wird häufig für die Konstruktorinjektion verwendet, es ist jedoch erforderlich, übermäßigen Gebrauch zu vermeiden, um die Komplexität zu erhöhen.

C# .NET in der modernen Welt: Anwendungen und BranchenC# .NET in der modernen Welt: Anwendungen und BranchenMay 08, 2025 am 12:08 AM

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.

C# .NET Framework vs. .net Core/5/6: Was ist der Unterschied?C# .NET Framework vs. .net Core/5/6: Was ist der Unterschied?May 07, 2025 am 12:06 AM

.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 Community von C# .NET -Entwicklern: Ressourcen und UnterstützungDie Community von C# .NET -Entwicklern: Ressourcen und UnterstützungMay 06, 2025 am 12:11 AM

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.

Der C# .NET -Vorteil: Funktionen, Vorteile und AnwendungsfälleDer C# .NET -Vorteil: Funktionen, Vorteile und AnwendungsfälleMay 05, 2025 am 12:01 AM

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.

Ist C# immer mit .NET verbunden? Alternativen erforschenIst C# immer mit .NET verbunden? Alternativen erforschenMay 04, 2025 am 12:06 AM

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.

Das .NET -Ökosystem: C #s Rolle und darüber hinausDas .NET -Ökosystem: C #s Rolle und darüber hinausMay 03, 2025 am 12:04 AM

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# als .NET -Sprache: Die Grundlage des ÖkosystemsC# als .NET -Sprache: Die Grundlage des ÖkosystemsMay 02, 2025 am 12:01 AM

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.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

SecLists

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.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

mPDF

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),

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)