HttpModules web.config के माध्यम से कॉन्फ़िगर किया गया है या Global.asaxDeveloper का निष्पादन के क्रम पर नियंत्रण नहीं है।
चूंकि मॉड्यूल का क्रम मुख्य रूप से अनुप्रयोग जीवन चक्र की घटनाओं पर आधारित होता है। निष्पादन आदेश अनुरोधों और प्रतिक्रियाओं के लिए समान रहता है।
HttpModules आपको एप्लिकेशन ईवेंट के लिए विशिष्ट कोड संलग्न करने में मदद करता है। HttpModules System.web से बंधे हैं।
मिडलवेयर को web.config फ़ाइल (एप्लिकेशन के लिए प्रवेश बिंदु) के बजाय Startup.cs कोड में कॉन्फ़िगर किया गया है
HttpModules के विपरीत, क्या निष्पादित किया जाता है और किस क्रम में पूर्ण नियंत्रण होता है। अस्थियों को उसी क्रम में क्रियान्वित किया जाता है जिस क्रम में उन्हें जोड़ा जाता है।
प्रतिक्रियाओं के लिए मिडलवेयर का क्रम अनुरोधों के लिए इसके विपरीत है।
मिडलवेयर इन घटनाओं से स्वतंत्र है।
मिडलवेयर मेजबान स्वतंत्र हैं।
Asp.Net कोर के मिडलवेयर में निर्मित
प्रमाणीकरण प्रमाणीकरण सहायता प्रदान करता है।
CORS क्रॉस-ओरिजिनल रिसोर्स शेयरिंग को कॉन्फ़िगर करता है।
रूटिंग अनुरोध मार्गों को परिभाषित और सीमित करें।
सत्र उपयोगकर्ता सत्रों के प्रबंधन के लिए सहायता प्रदान करता है।
निदान त्रुटि पृष्ठों और रनटाइम जानकारी के लिए समर्थन शामिल है।
उदाहरण
public class MyMiddleware{ private readonly RequestDelegate _next; private readonly ILogger _logger; public MyMiddleware(RequestDelegate next, ILoggerFactory logFactory){ _next = next; _logger = logFactory.CreateLogger("MyMiddleware"); } public async Task Invoke(HttpContext httpContext){ _logger.LogInformation("MyMiddleware executing.."); await _next(httpContext); // calling next middleware } }
// HTTP अनुरोध पाइपलाइन में मिडलवेयर जोड़ने के लिए उपयोग की जाने वाली एक्सटेंशन विधि।
public static class MyMiddlewareExtensions{ public static IApplicationBuilder UseMyMiddleware(this IApplicationBuilder builder){ return builder.UseMiddleware<MyMiddleware>(); } }
// नीचे दिखाए गए उपयोग विस्तार विधि का उपयोग करके अनुरोध पाइपलाइन में कस्टम मिडलवेयर जोड़ें
public void Configure(IApplicationBuilder app, IHostingEnvironment env){ app.UseMiddleware<MyMiddleware>() app.Run(async (context) =>{ await context.Response.WriteAsync("Hello World!"); }); }