


L'exemple de cet article décrit comment générer simplement un code de vérification dans asp.net. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants?:
1. Créez un nouveau programme de traitement général
namespace WebApplication1 { /// <summary> /// $codebehindclassname$ 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Handler1 : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "image/gif"; //建立Bitmap對象,繪圖 Bitmap basemap = new Bitmap(100, 30); Graphics graph = Graphics.FromImage(basemap); graph.FillRectangle(new SolidBrush(Color.White), 0, 0, 100, 30); Font font = new Font(FontFamily.GenericSerif, 24, FontStyle.Bold, GraphicsUnit.Pixel); Random r = new Random(); string letters = "ABCDEFGHIJKLMNPQRSTUVWXYZ"; string letter; StringBuilder s = new StringBuilder(); //添加隨機的五個字母 for (int x = 0; x < 5; x++) { letter = letters.Substring(r.Next(0, letters.Length - 1), 1); s.Append(letter); graph.DrawString(letter, font, new SolidBrush(Color.Black), x * 19, r.Next(0, 8)); } //混淆背景 Pen linePen = new Pen(new SolidBrush(Color.Black), 2); for (int x = 0; x < 6; x++) graph.DrawLine(linePen, new Point(r.Next(0, 99), r.Next(0, 29)), new Point(r.Next(0, 99), r.Next(0, 29))); //將圖片保存到輸出流中 basemap.Save(context.Response.OutputStream, ImageFormat.Gif); context.Session["CheckCode"] = s.ToString(); //如果沒有實現(xiàn)IRequiresSessionState,則這里會出錯,也無法生成圖片 context.Response.End(); } public bool IsReusable { get { return false; } } } }
2. ??>J'espère que cet article aidera tout le monde. La programmation asp.net aide.
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtCode" runat="server"></asp:TextBox> <img id="imgCode" alt="看不清?點擊換一張" src="Handler1.ashx" style="cursor:pointer" onclick="this.src=this.src+'?'" /><br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </div> </form> </body> </html>Pour plus d'articles sur la fa?on de générer simplement des codes de vérification dans asp.net, veuillez faire attention au site Web PHP chinois?!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

TheyieldKeywordInc # SimplifieSiteratorCreationyByAutomAticygeneratingastateMArnEtHaTenablesLayEvaluation.1.itallowsreturningItemSonEatatimeusingyElDreturn, PausingExecutionbetweenEachItem, qui estsidéalforlargeordynynamicesences.yieldbreakCanbem, qui estsidéalforgargeordynamicSequences.yieldbreakCanbenem, qui estsidéal pour la réduction

DependencyInjection (DI) Inc # IsadesignPatterntHatenhancesmodularité, testabilité et responsabilité par la fa?on dont les dépenses de contr?le

Le r?le d'idisposable et de l'utilisation dans C # est de gérer efficacement et de manière déterministe des ressources non gérées. 1. IDisposable fournit la méthode Dispose (), afin que la classe puisse clairement définir comment libérer des ressources non gérées; 2. L'instruction d'utilisation garantit que Disser () est automatiquement appelé lorsque l'objet est hors de portée, simplifiant la gestion des ressources et évitant les fuites; 3. Lorsque vous l'utilisez, veuillez noter que l'objet doit implémenter iDisposable, peut déclarer plusieurs objets et utiliser toujours en utilisant pour des types tels que StreamReader; 4. Les meilleures pratiques courantes incluent ne pas s'appuyer sur les destructeurs pour nettoyer, gérer correctement les objets imbriqués et mettre en ?uvre le modèle de disposition (bool).

LambdaExpressionsandLinqsimpplifyDatamanipulationIn # byenablingConcise, lisible et efficacecode.1.LambdaExpressionsallowinlineFunctionDctiondfinitions, faisant en sorte que

NullableReferenceTypes (NRTS) Inc # 8 HelpCatchNullReferenceExceptionErrorSatCompileTimeByMakingreferenceTySnon NullableByDefault, obligeant la disposition de laclaration

Span et la mémoire améliorent les performances C # en réduisant l'allocation de mémoire. 1. Span évite la copie du tableau et fournit des références légères à la mémoire existante, ce qui convient aux protocoles binaires d'analyse, aux opérations de cha?ne et à la gestion des tampons haute performance; 2. La mémoire prend en charge le passage des tranches de mémoire sur les méthodes asynchrones, qui conviennent aux scénarios où des cycles de vie plus flexibles sont nécessaires; 3. Les deux réduisent la pression GC, optimisent les performances en réutilisant les tampons et en évitant la copie temporaire; 4. La portée est limitée à l'utilisation sur la pile et ne peut pas être stockée dans les classes ou utilisée dans des méthodes asynchrones. Soyez prudent pour éviter les opérations de réaffectation telles que Call.ToArray ().

Quatre problèmes "anti-motifs" courants dans le développement C # doivent être évités. Premièrement, l'utilisation déraisonnable d'Async / Await conduit à des impasses ou à une dégradation des performances. Nous devons adhérer au principe de l'asynchrone complète, configurer la configurationaWait (false) et standardiser la dénomination; Deuxièmement, une dépendance excessive à l'égard de la VAR affecte la lisibilité et déclare et unifie explicitement les spécifications de l'équipe lorsque le type n'est pas clair; Troisièmement, l'utilisation incorrecte de la gestion des dispositions et des ressources provoque des fuites, et l'instruction d'utilisation doit être utilisée correctement et le mode standard IDISPOSable doit être mis en ?uvre; Quatrièmement, l'abus des classes statiques ou des singletons provoque des difficultés de test, et la priorité devrait être accordée à l'injection de dépendance, à l'état sans état ou au cycle de vie géré par des conteneurs. éviter ces malentendus peut considérablement améliorer la qualité et la maintenance du code.

Le principe solide est cinq principes de conception pour améliorer la maintenabilité et l'évolutivité du code dans la programmation orientée objet. Ce sont: 1. Le principe de responsabilité unique (SRP) exige que la classe n'assume qu'une seule responsabilité, comme la séparation de la génération de rapports et l'envoi d'e-mails; 2. Le principe d'ouverture et de cl?ture (OCP) souligne que l'extension est prise en charge par des interfaces ou des classes abstraites sans modifier le code d'origine, comme l'utilisation de l'interface ishape pour réaliser le calcul de la zone de différents graphiques; 3. Le principe de remplacement de Richter (LSP) exige que la sous-classe puisse remplacer la classe parent sans détruire la logique, comme le carré ne doit pas hériter à tort du rectangle, entra?nant un comportement anormal; 4. Le principe d'isolement d'interface (ISP) préconise la définition des interfaces à grain fin, telles que les fonctions d'impression et de balayage divisées pour éviter les dépendances redondantes; 5. Le principe d'inversion de dépendance (DIP) préconise le
