Heim Backend-Entwicklung C#.Net-Tutorial Einfache Erstellung des asp.net-Bestätigungscodes (vb.net+C#)

Einfache Erstellung des asp.net-Bestätigungscodes (vb.net+C#)

Jan 13, 2017 pm 02:40 PM
验证码

Die allgemeine Produktionsmethode für den Effekt des Bestätigungscodes auf der Website ist:
1) Verwenden Sie HttpHandler (allgemeiner Handler), um ein Bild des zufälligen Bestätigungscodes zu zeichnen, den Zufallscode zu generieren und ihn an den OutputStream der auszugeben Seite.
2) Verwenden Sie auf der Seite eine asynchrone Methode (js usw.), um den Bestätigungscode der aktuellen Seite zu aktualisieren.
[Beispiel]
1) Erstellen Sie einen „allgemeinen Anwendungshandler ashx“ mit dem folgenden Code:
[C#]

public class ValidationCode : IHttpHandler 
{ 
//随机发生器 
static Random r = new Random(Guid.NewGuid().GetHashCode()); 
//排除黑色、透明色颜色,因为底色黑色 
static PropertyInfo[] colors = (typeof(Brushes).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Static)).Where(p => p.Name != "Black" && p.Name != "Transparent").Select(p => p).ToArray(); 
//排除黑色颜色,因为底色黑色 
static PropertyInfo[] linecolors = (typeof(Pens).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.GetProperty | System.Reflection.BindingFlags.Static)).Where(p => p.Name != "Black").Select(p => p).ToArray(); 
//获取静态类Brushes实例对象 
static object colorobj = typeof(Brushes).GetConstructor(BindingFlags.NonPublic, null, Type.EmptyTypes, null); 
//获取静态类Pens实例对象 
static object penobj = typeof(Pens).GetConstructor(BindingFlags.NonPublic, null, Type.EmptyTypes, null); 
//每个随机字符的宽度 
const float PERNUMBERWIDTH = 40.0f; 
//每个字符的高度 
const float PERNUMBERHEIGHT = 50.0f; 
public void ProcessRequest(HttpContext context) 
{ 
//获取要产生多少随机数(默认产生5个) 
int reqNum = 5; 
if (context.Request.QueryString["reqNum"] != null) 
{ 
int.TryParse(context.Request.QueryString["reqNum"], out reqNum); 
} 
//产生多少大的背景图 
Bitmap bt = new Bitmap((int)(PERNUMBERWIDTH*reqNum), (int)PERNUMBERHEIGHT); 
Graphics g = Graphics.FromImage(bt); 
//产生4个随机数(number可以被保存到Session中) 
string numbers = ""; 
//绘制数字 
for (int i = 1; i <= reqNum; i++) 
{ 
numbers += r.Next(0, 9).ToString(); 
var color = (PropertyInfo)colors.GetValue(r.Next(0, colors.Length)); 
context.Response.Write(color.Name + "<br/>"); 
Brush randomcolor = (Brush)color.GetValue(colorobj, null); 
g.DrawString(numbers[i-1].ToString(), new Font("黑体", PERNUMBERWIDTH),randomcolor, new PointF((i-1)*PERNUMBERWIDTH, 0f)); 
} 
//绘制随机线条 
int linenum = r.Next(10, 21); 
for (int i = 1; i <= linenum; i++) 
{ 
var linecolor = (PropertyInfo)linecolors.GetValue(r.Next(0, colors.Length)); 
Pen randomcolor = (Pen)linecolor.GetValue(penobj, null); 
g.DrawLine(randomcolor, new PointF((float)(r.NextDouble() * PERNUMBERWIDTH * reqNum), (float)(r.NextDouble() * PERNUMBERHEIGHT)), new PointF((float)(r.NextDouble() * PERNUMBERWIDTH * reqNum), (float)(r.NextDouble() * PERNUMBERHEIGHT))); 
} 
g.Dispose(); 
context.Response.Clear(); 
context.Response.ContentType = "image/jpeg"; 
bt.Save(context.Response.OutputStream, ImageFormat.Jpeg); 
bt.Dispose(); 
context.Response.End(); 
} 
public bool IsReusable 
{ 
get 
{ 
return false; 
} 
} 
}
Nach dem Login kopieren

[VB.NET]

Public Class ValidationCode 
Implements IHttpHandler 
&#39;随机发生器 
Shared r As New Random(Guid.NewGuid().GetHashCode()) 
&#39;排除黑色、透明色颜色,因为底色黑色 
Shared colors As PropertyInfo() = (GetType(Brushes).GetProperties(System.Reflection.BindingFlags.[Public] Or System.Reflection.BindingFlags.GetProperty Or System.Reflection.BindingFlags.[Static])).Where(Function(p) p.Name <> "Black" AndAlso p.Name <> "Transparent").[Select](Function(p) p).ToArray() 
&#39;排除黑色颜色,因为底色黑色 
Shared linecolors As PropertyInfo() = (GetType(Pens).GetProperties(System.Reflection.BindingFlags.[Public] Or System.Reflection.BindingFlags.GetProperty Or System.Reflection.BindingFlags.[Static])).Where(Function(p) p.Name <> "Black").[Select](Function(p) p).ToArray() 
&#39;获取静态类Brushes实例对象 
Shared colorobj As Object = GetType(Brushes).GetConstructor(BindingFlags.NonPublic, Nothing, Type.EmptyTypes, Nothing) 
&#39;获取静态类Pens实例对象 
Shared penobj As Object = GetType(Pens).GetConstructor(BindingFlags.NonPublic, Nothing, Type.EmptyTypes, Nothing) 
&#39;每个随机字符的宽度 
Const PERNUMBERWIDTH As Single = 40F 
&#39;每个字符的高度 
Const PERNUMBERHEIGHT As Single = 50F 
Public Sub ProcessRequest(context As HttpContext) 
&#39;获取要产生多少随机数(默认产生5个) 
Dim reqNum As Integer = 5 
If context.Request.QueryString("reqNum") IsNot Nothing Then 
Integer.TryParse(context.Request.QueryString("reqNum"), reqNum) 
End If 
&#39;产生多少大的背景图 
Dim bt As New Bitmap(CInt(Math.Truncate(PERNUMBERWIDTH * reqNum)), CInt(Math.Truncate(PERNUMBERHEIGHT))) 
Dim g As Graphics = Graphics.FromImage(bt) 
&#39;产生4个随机数(number可以被保存到Session中) 
Dim numbers As String = "" 
&#39;绘制数字 
For i As Integer = 1 To reqNum 
numbers += r.[Next](0, 9).ToString() 
Dim color = DirectCast(colors.GetValue(r.[Next](0, colors.Length)), PropertyInfo) 
context.Response.Write(Convert.ToString(color.Name) & "<br/>") 
Dim randomcolor As Brush = DirectCast(color.GetValue(colorobj, Nothing), Brush) 
g.DrawString(numbers(i - 1).ToString(), New Font("黑体", PERNUMBERWIDTH), randomcolor, New PointF((i - 1) * PERNUMBERWIDTH, 0F)) 
Next 
&#39;绘制随机线条 
Dim linenum As Integer = r.[Next](10, 21) 
For i As Integer = 1 To linenum 
Dim linecolor = DirectCast(linecolors.GetValue(r.[Next](0, colors.Length)), PropertyInfo) 
Dim randomcolor As Pen = DirectCast(linecolor.GetValue(penobj, Nothing), Pen) 
g.DrawLine(randomcolor, New PointF(CSng(r.NextDouble() * PERNUMBERWIDTH * reqNum), CSng(r.NextDouble() * PERNUMBERHEIGHT)), New PointF(CSng(r.NextDouble() * PERNUMBERWIDTH * reqNum), CSng(r.NextDouble() * PERNUMBERHEIGHT))) 
Next 
g.Dispose() 
context.Response.Clear() 
context.Response.ContentType = "image/jpeg" 
bt.Save(context.Response.OutputStream, ImageFormat.Jpeg) 
bt.Dispose() 
context.Response.[End]() 
End Sub 
Public ReadOnly Property IsReusable() As Boolean 
Get 
Return False 
End Get 
End Property 
End Class
Nach dem Login kopieren

Hinweis:
1) Einige spezifische, wie z. B. Pinsel, sind öffentlich und müssen die gesamte Farbattributliste durch Reflektion erhalten. Daher werden statische Variablen verwendet, sodass sie nicht jedes Mal initialisiert werden müssen, was Speicherplatz spart Zeit.
2) Pinsel vermeiden Schwarz und transparente Farben (die Hintergrundfarbe in diesem Beispiel ist Schwarz) und Stifte müssen nur Schwarz vermeiden. Informationen zu Pinselfarben finden Sie unter: http://msdn.microsoft.com/zh-cn/library/system.windows.media.brush(v=vs.95).aspx
3) Die Bitmap-Klasse wird zum Zeichnen verwendet. Normalerweise wird ein leerer schwarzer Hintergrund verwendet. Wird im Allgemeinen mit der Bildklasse + Grafikleinwand zum Zeichnen verwendet.
4) Die Save-Methode von BitMap verfügt über mehrere überladene Versionen, von denen eine den Ausgabestream angeben und das Bildformat festlegen kann. In diesem Beispiel wird diese Funktion verwendet.
[Anwendung]

asp.net 验证码的简单制作(vb.net+C#)

HTML-Code (Bestätigungscodeteil, teilweise):

<h1> 
验证码 
</h1> 
<script> 
function ChangeSD() { 
document.getElementById("imgSD").src = ""; 
document.getElementById("imgSD").src = "/ValidationCode.ashx?reqNum=10"; 
}; 
</script> 
<img src="/ValidationCode.ashx?reqNum=10" id="imgSD" /> 
<input type="button" value="Change Validation Key" onclick="ChangeSD()" />
Nach dem Login kopieren

Beachten Sie, dass der Grund, warum js zum Festlegen verwendet wird img src zweimal, da wiederholte Pfade keine Anfragen auslösen.

Weitere Artikel zur einfachen Erstellung des asp.net-Bestätigungscodes (vb.net+C#) finden Sie auf der chinesischen PHP-Website!

Erklärung dieser Website
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

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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn Google Chrome das Bild des Bestätigungscodes nicht anzeigt? Der Chrome-Browser zeigt den Bestätigungscode nicht an? Was soll ich tun, wenn Google Chrome das Bild des Bestätigungscodes nicht anzeigt? Der Chrome-Browser zeigt den Bestätigungscode nicht an? Mar 13, 2024 pm 08:55 PM

Was soll ich tun, wenn Google Chrome das Bild des Bestätigungscodes nicht anzeigt? Manchmal benötigen Sie einen Bestätigungscode, um sich mit Google Chrome auf einer Webseite anzumelden. Einige Nutzer stellen fest, dass Google Chrome den Inhalt des Bildes bei Verwendung von Bildbestätigungscodes nicht richtig anzeigen kann. Was soll getan werden? Der folgende Editor erklärt, wie man damit umgeht, dass der Google Chrome-Bestätigungscode nicht angezeigt wird. Ich hoffe, dass er für alle hilfreich ist. Einführung in die Methode: 1. Rufen Sie die Software auf, klicken Sie oben rechts auf die Schaltfläche „Mehr“ und wählen Sie zum Aufrufen in der Optionsliste unten „Einstellungen“ aus. 2. Nachdem Sie die neue Benutzeroberfläche aufgerufen haben, klicken Sie links auf die Option „Datenschutzeinstellungen und Sicherheit“. 3. Klicken Sie dann rechts auf „Website-Einstellungen“.

Warum kann ich den Bestätigungscode nicht auf meinem Telefon empfangen? Warum kann ich den Bestätigungscode nicht auf meinem Telefon empfangen? Aug 17, 2023 pm 02:49 PM

Wenn Sie den Bestätigungscode nicht auf Ihrem Mobiltelefon erhalten, kann dies auf Netzwerkprobleme, Probleme mit den Mobiltelefoneinstellungen, Probleme mit dem Mobilfunkbetreiber und Probleme mit den persönlichen Einstellungen zurückzuführen sein. Detaillierte Einführung: 1. Die Netzwerkumgebung, in der sich das Mobiltelefon befindet, ist instabil oder das Signal ist schwach, was dazu führen kann, dass der Bestätigungscode nicht rechtzeitig übermittelt werden kann. 2. Probleme mit der Mobiltelefoneinstellung oder die Sprachfunktion des Mobiltelefons wurde versehentlich ausgeschaltet oder die Sendenummer des Bestätigungscodes wurde zur schwarzen Liste hinzugefügt, was dazu führte, dass der Bestätigungscode nicht normal empfangen wurde. 3. Möglicherweise hat der Mobilfunkanbieter Probleme Fehlfunktionen oder Wartungsarbeiten, die dazu führen, dass der Verifizierungscode nicht rechtzeitig geliefert wird usw.

Können virtuelle Nummern Verifizierungscodes erhalten? Können virtuelle Nummern Verifizierungscodes erhalten? Jan 02, 2024 am 10:22 AM

Die virtuelle Nummer kann den Bestätigungscode empfangen. Solange die bei der Registrierung eingegebene Mobiltelefonnummer den Vorschriften entspricht und die Mobiltelefonnummer normal verbunden werden kann, können Sie den SMS-Verifizierungscode erhalten. Allerdings müssen Sie bei der Verwendung virtueller Mobiltelefonnummern vorsichtig sein. Einige Websites unterstützen die Registrierung virtueller Mobiltelefonnummern nicht, daher müssen Sie einen regulären Anbieter für virtuelle Mobiltelefonnummern wählen.

Fall der PHP-Bildverarbeitung: So implementieren Sie die Verifizierungscodefunktion von Bildern Fall der PHP-Bildverarbeitung: So implementieren Sie die Verifizierungscodefunktion von Bildern Aug 17, 2023 pm 12:09 PM

Fall der PHP-Bildverarbeitung: So implementieren Sie die Verifizierungscodefunktion von Bildern Mit der rasanten Entwicklung des Internets sind Verifizierungscodes zu einem wichtigen Mittel zum Schutz der Website-Sicherheit geworden. Der Verifizierungscode ist eine Verifizierungsmethode, die mithilfe der Bilderkennungstechnologie ermittelt, ob der Benutzer ein echter Benutzer ist. In diesem Artikel wird erläutert, wie Sie mit PHP die Verifizierungscodefunktion von Bildern implementieren, und es werden Codebeispiele bereitgestellt. Einleitung Ein Verifizierungscode ist ein Bild mit zufälligen Zeichen. Der Benutzer muss die Zeichen im Bild eingeben, um die Verifizierung zu bestehen. Der Hauptprozess der Implementierung des Verifizierungscodes umfasst die Generierung zufälliger Zeichen und das Zeichnen von Zeichen in Bilder.

Verifizierungscodes können Roboter nicht aufhalten! Google AI kann verschwommenen Text genau identifizieren, während GPT-4 vorgibt, blind zu sein und um Hilfe bittet Verifizierungscodes können Roboter nicht aufhalten! Google AI kann verschwommenen Text genau identifizieren, während GPT-4 vorgibt, blind zu sein und um Hilfe bittet Apr 12, 2023 am 09:46 AM

„Das Ärgerlichste sind alle möglichen seltsamen (oder sogar perversen) Bestätigungscodes, wenn man sich auf einer Website anmeldet.“ Nun gibt es gute und schlechte Nachrichten. Die gute Nachricht ist: KI kann das für Sie erledigen. Wenn Sie mir nicht glauben, hier sind drei reale Fälle von zunehmenden Erkennungsschwierigkeiten: Und das sind die Antworten, die ein Modell namens „Pix2Struct“ gibt: Sind sie alle korrekt und Wort für Wort? Einige Internetnutzer beklagten: Sicher, die Genauigkeit ist besser als meine. Kann es also in ein Browser-Plug-in umgewandelt werden? ? Ja, einige Leute sagten: Auch wenn diese Fälle relativ einfach sind, kann ich mir nicht vorstellen, wie stark der Effekt sein wird, wenn man sie nur verfeinert. Die schlechte Nachricht ist also: Der Bestätigungscode wird die Roboter bald nicht mehr stoppen können! (Gefahr Gefahr Gefahr...) Wie geht das? Pix2St

Verwenden Sie die OCR-Technologie, um verschiedene Verifizierungscodes automatisch zu identifizieren. Das Tool ist Open Source Verwenden Sie die OCR-Technologie, um verschiedene Verifizierungscodes automatisch zu identifizieren. Das Tool ist Open Source May 25, 2023 am 10:07 AM

Heute teile ich mit Ihnen eine OCR-Anwendung – ddddocr erkennt automatisch Verifizierungscodes. Die ersten vier d sind das erste Pinyin von „Daidai jüngerer Bruder“. [/Lachen]. Projektadresse: https://github.com/sml2h3/ddddocr. Wenn Sie es verwenden, verwenden Sie den Befehl pip, um es direkt zu installieren, einfach pipinstalldddddocr. Die Kerntechnologie von OCR umfasst zwei Aspekte: Zum einen das Zielerkennungsmodell zum Erkennen des Texts im Bild und zum anderen das Texterkennungsmodell zum Umwandeln des Texts im Bild in Text. Die erste Art von Verifizierungscodes ist die einfachste. Sie haben keine komplexen Hintergrundbilder, sodass das Zielerkennungsmodell weggelassen werden kann und die Bilder direkt an das Texterkennungsmodell gesendet werden können. Der Identifikationscode lautet wie folgt: Import

PHP-Entwicklungshandbuch: Implementierung des Verifizierungscode-Logins PHP-Entwicklungshandbuch: Implementierung des Verifizierungscode-Logins Jul 01, 2023 am 09:27 AM

Mit der Entwicklung des Internets und der Popularität von Smartphones wird die Anmeldefunktion mit Bestätigungscode von immer mehr Websites und Anwendungen übernommen. Bei der Anmeldung mit Bestätigungscode handelt es sich um eine Anmeldemethode, die die Identität des Benutzers durch Eingabe des richtigen Bestätigungscodes überprüft, um die Sicherheit zu verbessern und böswillige Angriffe zu verhindern. In der PHP-Entwicklung ist die Implementierung einer einfachen Anmeldefunktion mit Bestätigungscode nicht kompliziert und kann durch die folgenden Schritte abgeschlossen werden. Erstellen Sie eine Datenbanktabelle. Zuerst müssen wir eine Tabelle in der Datenbank erstellen, um Informationen zum Bestätigungscode zu speichern. Die Tabellenstruktur kann die folgenden Felder enthalten: id: automatisch inkrementierender Primärschlüssel phon

So erhalten Sie einen Bestätigungscode mit einer virtuellen Nummer So erhalten Sie einen Bestätigungscode mit einer virtuellen Nummer Oct 31, 2019 pm 04:52 PM

So erhalten Sie den Bestätigungscode mit einer virtuellen Nummer: Geben Sie zuerst die Yima-Bestätigungscode-Empfangsplattform ein, öffnen Sie dann den SMS-Bestätigungscode-Dienst und rufen Sie schließlich die virtuelle Mobiltelefonnummer auf Plattform, an die der Bestätigungscode gesendet werden soll. Geben Sie Ihre Mobiltelefonnummer ein und wählen Sie [Bestätigungscode senden].

See all articles