Eine gekapselte asp.net-Bestätigungscodeklasse
Die erste Überlegung ist, ob diese Attribute des Verifizierungscodes festgelegt werden können (das heißt, ob sie in eine Klasse gekapselt und dann durch Offenlegung öffentlicher Attribute und Methoden verwendet werden oder ob die Verifizierung direkt im allgemeinen Handler implementiert wird). Das Ergebnis ist leider das letztere... Der darin enthaltene Algorithmus fühlt sich ziemlich gut an, zumindest für jemanden wie mich, der sich kaum mit Algorithmen auskennt, also dachte ich darüber nach, ihn zu kapseln. Sie hat ihn dann schamlos in ihre eigene Klassenbibliothek integriert ^^
Analysieren Sie zunächst die Mängel in diesem Code (was sie denkt):
1. Für die prozedurale Programmierung, wenn Sie die Eigenschaften des Bestätigungscodes ändern möchten, z. B. die Änderung der Schriftgröße, der Hintergrundfarbe usw Details müssen Sie den relevanten Code im allgemeinen Verarbeitungsprogramm finden und ändern. Dieser Code ist jedoch besser. Er trennt die Generierung der Bestätigungscodezeichenfolge und die Bildgenerierung in verschiedene Methoden, sodass die zu ändernden Stellen leichter gefunden werden können.
2. Wenn ich diese Funktion an anderen Stellen anwenden möchte, beispielsweise in einem Winform-Programm, kann dieser Code nicht in Form einer Komponente (einer DLL) wiederverwendet, sondern kopiert, eingefügt und geändert werden ...
3. Ich habe nicht festgestellt, dass der Bestätigungscode nach der Generierung gespeichert wurde (- -!)
Natürlich sind die sogenannten Mängel relativ, das heißt, wenn Sie Zeit dafür haben Denken Sie darüber nach und entwerfen Sie dann langsam eine Verifizierungscode-Klasse. Sie kann auf jeden Fall eine relativ gute Klasse sein, aber wenn Sie an einem Projekt arbeiten und das Projekt dringend ist, ist ein solcher Code tatsächlich leistungsfähiger. Die orientierte Entwurfsmustercode-Entkopplung ist nur eine Wolke ~~~
Der nächste Schritt ist meine Modifikation dieses Codes. Zuerst bestimme ich, welchen Effekt ich möchte, das heißt, wie ich ihn verwenden möchte, nachdem ich ihn gekapselt habe. Zunächst hoffe ich, dass ich bei der Verwendung nur eine neue Verifizierungscode-Instanz erstellen muss (bei Bedarf kann ich verschiedene Attribute des Verifizierungscodes beliebig festlegen) und dann bestimmte Methoden dieser Instanz aufrufen kann, um Zeichenfolgen zu verwenden , Streams, Bitmap-Objekte bzw. Byte. Erhalten Sie diesen Verifizierungscode in Form eines Arrays (beachten Sie, dass diese Verifizierungscode-Klasse nicht die Funktion zum Speichern des Verifizierungscodes im Kontext enthält. Ich persönlich bin der Meinung, dass dies das Generieren des Verifizierungscodes ist und das Speichern des Verifizierungscodes im Kontext sind zwei verschiedene Funktionen. Es ist nicht erforderlich, diese Funktion in der Verifizierungscode-Klasse hinzuzufügen. In diesem Fall wird der Code im allgemeinen Verarbeitungsprogramm äußerst einfach. Erstellen Sie zunächst einfach einen Bestätigungscode mit new, rufen Sie dann die Methode auf, um den Bestätigungscode in Form einer Zeichenfolge zu erhalten, und speichern Sie ihn dann morgens und nachmittags . Ob es in der Sitzung oder im Cookie vorhanden ist Es kommt nach Bedarf, und die Verifizierungscode-Klasse kümmert sich nicht darum, dann ruft sie eine andere Methode auf, um den Verifizierungscode in Form eines Byte-Arrays zu erhalten, damit das Bild über die Methode context.Response.BinaryWrite() ausgegeben werden, d. h. Das allgemeine Verarbeitungsprogramm enthält nur drei Codezeilen. Der aufrufende Code lautet ungefähr wie folgt:
/// <summary> /// 获取验证码(一般处理程序入口函数) /// </summary> /// <param name="context">当前上下文</param> public void ProcessRequest(HttpContext context) { // 创建验证码 ValidateCode validateCode = new ValidateCode(); // 获取验证码(字符串),写入Session context.Session["SomeValidateCode"] = validateCode.GetString(); // 输出验证码(图片) context.Response.BinaryWrite(validateCode.GetByteArray()); }
PS: Ich erinnere mich, dass der Code zu Beginn meiner Arbeit sehr schlecht geschrieben war (schlechter als jetzt, als ich ihn direkt verwendete). Ich habe nie darüber nachgedacht, den Code zu ändern oder zu kapseln, das hat mir mein Meister damals beigebracht und ich war sehr beeindruckt. Ich persönlich bin der Meinung, dass es nichts Falsches ist, den Code anderer Leute zu verwenden, um zumindest die Benutzerfreundlichkeit des Codes zu beweisen. Darüber hinaus sind einige Dinge nicht so gut, wie andere denken Wenn Sie sie nutzen möchten, dürfen Sie den Code anderer Personen nicht blind verwenden. Nehmen Sie am besten die erforderlichen Änderungen oder Kapselungen entsprechend Ihrer tatsächlichen Situation vor, auch wenn es sich nur um eine einfache Ebene handelt. Wenn das Projekt dringend ist, ist es natürlich Zeitverschwendung. Kurz gesagt, denken Sie nicht darüber nach, verwenden Sie es, sobald Sie es erhalten, und stellen Sie zumindest den Schlüsselcode oder die Gesamtstruktur sicher Der Code ist klar.
Weitere Artikel zum Thema gekapselter asp.net-Bestätigungscode finden Sie auf der chinesischen PHP-Website!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Die Teststrategien für C#.NET-Anwendungen umfassen Unit-Tests, Integrationstests und End-to-End-Tests. 1. Unit -Test stellt sicher, dass die Mindesteinheit des Codes unter Verwendung des Frameworks MStest, Nunit oder Xunit unabhängig funktioniert. 2. Integrierte Tests überprüfen die Funktionen mehrerer Einheiten kombinierter, häufig verwendeten simulierten Daten und externen Diensten. 3. End-to-End-Tests simuliert den vollständigen Betriebsprozess des Benutzers, und Selen wird normalerweise für automatisierte Tests verwendet.

C#.NET -Interviewfragen und Antworten umfassen Grundkenntnisse, Kernkonzepte und erweiterte Nutzung. 1) Grundkenntnisse: C# ist eine von Microsoft entwickelte objektorientierte Sprache und wird hauptsächlich im .NET-Framework verwendet. 2) Kernkonzepte: Delegation und Ereignisse ermöglichen dynamische Bindungsmethoden, und LINQ bietet leistungsstarke Abfragefunktionen. 3) Erweiterte Verwendung: Asynchrone Programmierung verbessert die Reaktionsfähigkeit und Expressionsbäume werden für die dynamische Codekonstruktion verwendet.

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#.NET ist immer noch wichtig, da es leistungsstarke Tools und Bibliotheken bietet, die mehrere Anwendungsentwicklung unterstützen. 1) C# kombiniert .NET Framework, um die Entwicklung effizient und bequem zu machen. 2) Mechanismus zum Typensicherheit und Müllsammlung von C#erhöht die Vorteile. 3) .NET bietet eine plattformübergreifende laufende Umgebung und eine reichhaltige APIs, wodurch die Flexibilität der Entwicklung verbessert wird.

Das Interview mit C# Senior Developer erfordert das Mastering von Kernwissen wie asynchrones Programmieren, LINQ und interne Arbeitsprinzipien von .NET -Frameworks. 1. Asynchrones Programmieren vereinfacht die Operationen durch Async und wartet auf die Verbesserung der Anwendungsreaktionsfähigkeit. 2.LinQ betreibt Daten im SQL -Stil und achtet auf die Leistung. 3. Die CLR des Net -Frameworks verwaltet den Speicher, und die Müllsammlung muss mit Vorsicht verwendet werden.

C#.NetissoBableFoREenterPrise-Level Applications-WithemicrosoftCosystemDuetoitsStrongtyPing, Richlibrary, Androbustperformance.

Zu den Best Practices für C# und .NET gehören die Eingabeüberprüfung, die Ausgabecodierung, die Ausnahmebehandlung sowie die Authentifizierung und Autorisierung. 1) Verwenden Sie regelmäßige Ausdrücke oder integrierte Methoden, um die Eingaben zu überprüfen, um zu verhindern, dass bösartige Daten in das System eintreten. 2) Ausgangscodierung Um XSS -Angriffe zu verhindern, verwenden Sie die Methode httputility.htmlencode. 3) Ausnahmebehandlung vermeidet Informationen, die Leckagen aufzeichnen, Fehler aufzeichnen, jedoch keine detaillierten Informationen an den Benutzer zurückgeben. 4) Verwenden Sie ASP.Netidentity- und Schadensbasis-Berechtigung, um Anwendungen vor nicht autorisierten Zugriff zu schützen.
