ASP.NET Info

 


Intro

ASP.NET Core is an open-source framework that can run on multiple platforms (Windows, Linux, MacOS) for building web applications.


Documentation

  •  

 


Tips and Tidbits

  •  

 


ASP.NET Core Middleware

  • ASP.NET Core Middleware

  • Middleware is software that's assembled into an app pipeline to handle requests and responses. Each component:

    • Chooses whether to pass the request to the next component in the pipeline.

    • Can perform work before and after the next component in the pipeline.

  • Request delegates are used to build the request pipeline. The request delegates handle each HTTP request.

  • Each middleware component in the request pipeline is responsible for invoking the next component in the pipeline or short-circuiting the pipeline.

  • When a middleware short-circuits, it's called a terminal middleware because it prevents further middleware from processing the request.

 

public class Startup { public void Configure(IApplicationBuilder app) { app.Use(async (context, next) => { // Do work that doesn't write to the Response. await next.Invoke(); // Do logging or other work that doesn't write to the Response. }); app.Run(async context => { await context.Response.WriteAsync("Hello from 2nd delegate."); }); } }

 

  • The following Startup.Configure method adds security-related middleware components in the typical recommended order:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); // app.UseCookiePolicy(); app.UseRouting(); // app.UseRequestLocalization(); // app.UseCors(); app.UseAuthentication(); app.UseAuthorization(); // app.UseSession(); // app.UseResponseCompression(); // app.UseResponseCaching(); app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); }

 

 

© Roger Cruz - All rights reserved