← ClaudeAtlas

aspnet-middlewarelisted

ASP.NET Core custom middleware, pipeline order, exception handling middleware, and request/response manipulation. USE WHEN: user mentions "middleware", "request pipeline", "exception middleware", "ASP.NET middleware", "UseMiddleware", "pipeline order" DO NOT USE FOR: Express middleware - use `express`, NestJS middleware - use `nestjs`
claude-dev-suite/claude-dev-suite · ★ 33 · AI & Automation · score 80
Install: claude install-skill claude-dev-suite/claude-dev-suite
# ASP.NET Core Middleware - Quick Reference > **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `aspnet-core`, topic: `middleware` for comprehensive documentation. ## Pipeline Order ``` Request → Exception Handler → HSTS → HTTPS Redirect → Static Files → CORS → Authentication → Authorization → Custom Middleware → Endpoint ``` ```csharp var app = builder.Build(); // 1. Exception handling (first to catch all) app.UseExceptionHandler("/error"); app.UseHsts(); // 2. HTTPS and static files app.UseHttpsRedirection(); app.UseStaticFiles(); // 3. Routing app.UseRouting(); // 4. CORS (before auth) app.UseCors(); // 5. Auth app.UseAuthentication(); app.UseAuthorization(); // 6. Custom middleware app.UseMiddleware<RequestLoggingMiddleware>(); // 7. Endpoints app.MapControllers(); ``` ## Custom Middleware (Convention-based) ```csharp public class RequestLoggingMiddleware { private readonly RequestDelegate _next; private readonly ILogger<RequestLoggingMiddleware> _logger; public RequestLoggingMiddleware(RequestDelegate next, ILogger<RequestLoggingMiddleware> logger) { _next = next; _logger = logger; } public async Task InvokeAsync(HttpContext context) { var sw = Stopwatch.StartNew(); _logger.LogInformation("Request {Method} {Path}", context.Request.Method, context.Request.Path); await _next(context); sw.Stop(); _logger.LogInformation("Response {StatusCode} in {Elap