1. Wprowadzenie do ASP.NET
  2. Szybki start
  3. Struktura projektu
  4. Tworzenie kontrolerów i akcji
  5. Routing
  6. Modelowanie danych
  7. Widoki RazorViewEngine i TagHelpers
  8. Dostęp do danych
  9. Middleware
  10. Implementacja uwierzytelnienia
  11. Obsługa błędów
  12. Stylowanie aplikacji
  13. Implementacja serwisów RESTful
  14. Implementacja WebSocketów
  15. Testowanie aplikacji
  16. Debugowanie aplikacji
  17. Wdrażanie aplikacji
  18. Integracja z innymi technologiami
  19. Podsumowanie

Middleware i żądania HTTP

Middleware w ASP.NET Core to oprogramowanie, które przetwarza żądania HTTP i generuje odpowiedzi. Każde żądanie HTTP w aplikacji ASP.NET Core przechodzi przez zestaw middleware'ów, które przetwarzają żądanie i/lub odpowiedź.Można utworzyć niestandardowe middleware'y w celu wykonywania określonych operacji, takich jak logowanie, uwierzytelnianie, weryfikacja uprawnień i wiele innych.

Aby utworzyć niestandardowe middleware w ASP.NET Core, należy utworzyć klasę, która implementuje interfejs IMiddleware, a następnie zarejestrować ją w kolekcji middleware'ów w metodzie Configure klasy Startup.

Utworzenie middleware do logowania żądań HTTP:

 								
public class LoggingMiddleware : IMiddleware
{
  private readonly ILogger<LoggingMiddleware> _logger;

  public LoggingMiddleware(ILogger<LoggingMiddleware> logger)
  {
      _logger = logger;
  }

  public async Task InvokeAsync(HttpContext context, RequestDelegate next)
  {
      _logger.LogInformation($"Handling HTTP request: {context.Request.Method} {context.Request.Path}");
      await next(context);
  }
}
 								
 						
Wyjaśnienie

W tym przykładzie utworzono klasę LoggingMiddleware, która implementuje interfejs IMiddleware. Konstruktor klasy przyjmuje interfejs ILogger, który umożliwia zapisywanie logów. Metoda InvokeAsync zawiera kod, który loguje informacje o żądaniu HTTP, a następnie wywołuje kolejny middleware w łańcuchu.

Rejestracja middleware'u w klasie Startup, w metodzie Configure:

								
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    app.UseMiddleware<LoggingMiddleware>();

    // ...
}
								
						
Wyjaśnienie

W tym przykładzie zarejestrowano middleware LoggingMiddleware za pomocą metody UseMiddleware na obiekcie IApplicationBuilder.

Ważne

Kolejność rejestracji middleware'ów jest ważna, ponieważ każdy middleware w łańcuchu przetwarza żądanie HTTP w kolejności rejestracji.

Notatka

Można również wykorzystać wbudowane middleware'y w ASP.NET Core do przetwarzania żądań HTTP i odpowiedzi. Na przykład, middleware UseRouting służy do przetwarzania routingu żądań HTTP, a middleware UseEndpoints służy do przetwarzania żądań HTTP i generowania odpowiedzi.